Struts2学习之旅(5)–接收参数
注意:下面在定义action中出现一个错误 应该是: ****
Insert title here
用户名:
密码:
public class LoginAction extends ActionSupport {
public String login() {
return SUCCESS;
}
}
并在helloworld.xml中添加对应的标签
package com.chb.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
private String username;
private String password;
public String login() {
System.out.println(username);
return SUCCESS;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
执行过程:
如果参数个数比较多,那么在Action中定义的属性就比较多,这是十分繁琐的 所以我们就使用第二种方法: 使用doMain Model接收参数
二、使用doMain Model接收参数首先创建一个属性对象:
package com.chb.action.entity;
/**
* 创建一个属性的对象
* @author Administrator
*
*/
public class User {
private String username;
private String password;
public User() {
super();
}
public User(String username, String password) {
super();
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
在LoginAction中使用这个对象
public class LoginAction extends ActionSupport {
private User mUser;
public String login() {
System.out.println(mUser.getUsername());
return SUCCESS;
}
public User getmUser() {
return mUser;
}
public void setmUser(User mUser) {
this.mUser = mUser;
}
}
在对应的login.jsp中
用户名:
密码:
要做相应的修改,就属性和对象联立起来 在的属性name设置为name=”user.username” 由此将传入的值与LoginAction中的对象联立起来。
用户名:
密码:
三、使用ModelDriven接收参数
(1) 、LoginAction实现ModelDriven接口 (2)、 重写getModel(); (3)、 在login.jsp中不需要关联user (4)、在LoginAction中直接创建User user = new User(); (5)、在getModel中返回这个User
LoginAction.java
package com.chb.action;
import com.chb.action.entity.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class LoginAction extends ActionSupport
implements ModelDriven{
private User user = new User();
public String login() {
System.out.println(user.getUsername());
return SUCCESS;
}
@Override
public User getModel() {
// TODO Auto-generated method stub
return user;
}
}
在login.jsp中不需要关联对象了:
用户名:
密码:
改进:如果User对象不光是基本数据类型:
User中添加合集对象
package com.chb.action;
import com.chb.action.entity.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class LoginAction extends ActionSupport
implements ModelDriven{
private User user = new User();
public String login() {
System.out.println(user.getUsername());
System.out.println(user.getUsers().get(0).getUsername());
System.out.println(user.getUsers().get(1).getUsername());
return SUCCESS;
}
@Override
public User getModel() {
// TODO Auto-generated method stub
return user;
}
}