티스토리 뷰
Using HttpService is the easiest way in which you can integrate Adobe Flex and Struts 2. As an example I will show you how you can create a registration form in Adobe Flex which calls a struts 2 action to create new users. Note that this example is very simple and for demonstration purposes. I am not adding any validation in flex and not even creating the users in a database. All I show you is how you can pass data between flex and struts.
First let me show you the steps you need to perform in Adobe Flex:
Step 1
Create the registration form in mxml:
Step 2
Create the HttpService object:
Step 3
Write the actionscript call to submit the form:
Step 4
Create registerConfirmation(). This method checks whether the registration was successful. We can know that by inspecting the XML that is returned.
Step 5
If we can't call the action on the server because of some networking issue we also should give some feedback to the user.
Now let's create our Struts 2 Action:
Step 1
Create RegisterAction.java
Step 2
Add action name='register' to struts.xml
-------------------------
출처: http://simplyolaf.blogspot.com/2009/07/adobe-flex-with-struts-2-using.html
First let me show you the steps you need to perform in Adobe Flex:
Step 1
Create the registration form in mxml:
<mx:Form label="Registration Form">
<mx:FormHeading label="Registration Form">
</mx:FormHeading>
<mx:FormItem label="First Name">
<mx:TextInput id="firstName">
</mx:TextInput>
</mx:FormItem>
<mx:FormItem label="Last Name">
<mx:TextInput id="lastName">
</mx:TextInput>
</mx:FormItem>
<mx:FormItem label="Email">
<mx:TextInput id="email">
</mx:TextInput>
</mx:FormItem>
<mx:FormItem label="Username">
<mx:TextInput id="username">
</mx:TextInput>
</mx:FormItem>
<mx:FormItem label="Password">
<mx:TextInput id="password" displayAsPassword="true">
</mx:TextInput>
</mx:FormItem>
<mx:FormItem>
<mx:Button label="Register" click="registerUser()"/>
</mx:FormItem>
</mx:Form>
Step 2
Create the HttpService object:
<mx:HTTPService id="registerService" showBusyCursor="true" useProxy="false" url="register.action" resultFormat="e4x" method="POST" result="registerConfirmation(event)" fault="registerFailed(event)"/>
- register.action is the Struts 2 action that registers the user
- registerConfirmation(event) is the function that is called if the http service call is successful.
- registerFailed(event) is the function that is called if an error occurs. For example if the server is down. The event object gives you access to any xml/html that might be returned upon the call of the action.
- resultFormat specifies in which format you want to view the results. It can be text, xml or an object. There are 5 possible values for this field:
- object - An XML object is returned and is parsed as a tree of ActionScript objects
- xml - Returns literal XML in an XMLNode object
- e4x - Returns literal XML that can be accessed using ECMAScript for XML(E4X) expressions.
- flashvars - The result is text in flashvars format, value pairs separated by ampersands. Flex returns this result in an actionscript object
- array - The result is XML that is returned in an Array even if there is only one top level node.
- object - An XML object is returned and is parsed as a tree of ActionScript objects
Step 3
Write the actionscript call to submit the form:
public function registerUser():void {
var params:Object = { 'user.firstName': firstName.text,'user.lastName': lastName.text, 'user.email':email.text, 'user.password':password.text };
this.registerService.send(params);
}
Step 4
Create registerConfirmation(). This method checks whether the registration was successful. We can know that by inspecting the XML that is returned.
private function registerConfirmation(event:ResultEvent):void {
var xml:XML=XML(event.result);
if (xml != null && xml.item == true) {
mx.controls.Alert.show("Registration Successful!");
}
else {
mx.controls.Alert.show("The registration was not successful.");
}
}}
Step 5
If we can't call the action on the server because of some networking issue we also should give some feedback to the user.
/**
* Display a message to the user explaining what went wrong
*/
private function registerFailed(event:FaultEvent):void {
mx.controls.Alert.show(event.fault.message);
}
Now let's create our Struts 2 Action:
Step 1
Create RegisterAction.java
package uk.co.spltech.web.actions;
import uk.co.spltech.beans.User;
import com.opensymphony.xwork2.ActionSupport;
/**
* Creates a new user
*
* @author Armindo Cachada
*
*/
public class RegisterAction extends ActionSupport {
private User user;
private Boolean success;
public Boolean getSuccess() {
return success;
}
public void setSuccess(Boolean success) {
this.success = success;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
/**
* Registers a user
*
* @return
*/
public String register() {
System.out.println("Checking user");
if ( this.getUser()!= null) {
User u = this.getUser();
if (u.getEmail()!= null && !u.getEmail().equals("") && u.getPassword()!= null
&& !u.getPassword().equals("") ) {
System.out.println("Successfully registered user with email=" + u.getEmail());
this.success=true;
}
else {
this.success=false;
System.out.println("Error registering user");
}
}
else {
this.success=false;
System.out.println("Error registering user");
}
return SUCCESS;
}
}
Step 2
Add action name='register' to struts.xml
<package name="user" extends="struts-default">
<action name="register" method="register" class="uk.co.spltech.web.actions.RegisterAction">
<result type="xslt"> <param name="exposedValue">{success}</param></result>
</action>
</package>
-------------------------
출처: http://simplyolaf.blogspot.com/2009/07/adobe-flex-with-struts-2-using.html
'Programming > Flex' 카테고리의 다른 글
Flex 페이지 변수 이동 (Parameter이동) (0) | 2009.08.25 |
---|---|
Flex 생성 과정 (0) | 2009.08.25 |
댓글
현우수범아빠
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- iOS12
- 고차함수
- Android NullPointException
- UITextField
- Automatic Reference Counting
- 이어받기
- 함수형
- FIND
- 약한참조
- ios14
- suspend
- 순환참조
- terminate
- 기술부채
- ASIHttpRequest
- i18n
- GoogleDrive
- reduce
- 좋은코드
- ios file download
- ios
- 강한참조
- Swift
- remove chome desk top
- password autofill
- 맥미니 2009 late RAM HDD Upgrade
- onetime
- 파일 다운로드
- Codable
- 크롬 원격 삭제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함