Struts2中表单与Action传递数据三种方式
今天在搭SSH框架的时候,想到Struts的表单封装,自己只知道有2种方式,结果在网上一查,还可以根据Struts自带的ModelDriven来获取表单数据。
顺便也做下总结:
1.Action中的属性与表单中的属性一致就可以
01.<!--JSP中的表单-->?
02.<form action="login.action" method="post">?
03.??? 用户名:<input type="text" name="username"/>??? <br/>?
04.??? 密码:? <input type="password" name="password" /> <br/>?
05.??? <input type="submit" value="登陆" />?
11.</form>?
Java代码
01.//Action中的属性???????????????????????????????????????????????????????????
02.public class LoginAction extends ActionSupport {????????
03.??? private String username;???????
04.??? private String password;?????
05.?????
06.??? public String getUsername() {?????
07.?????? return username;?????
08.??? }?????
09.????
10.??? public void setUsername(String username) {?????
11.?????? this.username = username;?????
12.??? }?????
13.????
14.??? public String getPassword() {?????
15.?????? return password;?????
16.??? }?????
17.????
18.??? public void setPassword(String password) {?????
19.?????? this.password = password;???????
20.??? }?????
21.????
22.??? public String execute(){?????
23.?????? if( username.equalsIgnoreCase("aaa")&&password.equals("aaaaaa")){?????
24.?????????? return SUCCESS;?????
25.?????? }else{?????
26.?????????? return ERROR;?????
27.?????? }?????
28.??? }?????
29.????
30.}?
??
2.使用一个VO类
XML/HTML代码
01.<!--在表单中提交的属性名改为user.username-->?
02.<form action="login.action" method="post">?
03.?????? 用户名:<input type="text" name="user.username"/>? <br/>?
04.?????? 密码:? <input type="password" name="user.password" /> <br/>?
05.?????? <input type="submit" value="登陆" />?
06.??? </form>?
Java代码
01.//LoginAction中的属性改为user??
02.public class LoginAction extends ActionSupport{??
03.??? private User user;??
04.?
05.??? public User getUser() {??
06.?????? return user;??
07.??? }??
08.?
09.??? public void setUser(User user) {??
10.?????? this.user = user;??
11.??? }??
12.?
13.??? public String execute(){??
14.?????? if( user.getUsername().equalsIgnoreCase("aaa")&&user.getPassword().equals("aaaaaa")){??
15.?????????? return SUCCESS;??
16.?????? }else{??
17.?????????? return ERROR;??
18.?????? }??
19.??? }??
20.?
21.}?
3.使用Struts2中的ModelDriven数据模式
Java代码
01.//Action类要实现一个泛型接口,前台表单与1相同??
02.public class LoginAction extends ActionSupport implements ModelDriven<User> {???
03.??? private User user = new User();??
04.?
05.??? public String execute(){??
06.?????? if( user.getUsername().equalsIgnoreCase("aaa")&&user.getPassword().equals("aaaaaa")){??
07.?????????? return SUCCESS;??
08.?????? }else{??
09.?????????? return ERROR;???
10.?????? }??
11.?
12.??? }??
13.?
14.??? public User getModel() {??
15.?????? return user;??
16.??? }??
17.?
18.}
如果大家还有更好的方法,大家可以一起讨论!
?