传统的Web应用程序是调用HttpServletRequest的getParameter(String name),来获取数据的。
在Struts2中,有多种方式用于接收用户数据
1直接使用领域对象来接收用户输入,如下
在login.jsp页面中有<input type="text" name="user.username">
<input type="password" name="user.password">
然后编写相应的javabean:User
public class User implements Serializable{
private String username;
private String password;
public String getUsername(){
return username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public void setUsername(String username) {
this.username = username;
}
}
再编写相应的LoginAction类,
public class LoginAction implements Action {
User user;
public User getUser()
{
return user;
}
public void setUser(User user)
{
this.user = user;
}
public String execute() throws Exception{
//处理过程
}
}
2使用ModelDriven action
可以实习com.opensymphony.xwork2.ModelDriver接口,该接口中只有一个方法public T getModel();该方法返回一个用于接收用户输入数据的模型对象。LoginAction如下
public class LoginAction implements Action ,ModelDriven<User>{
private User user = new User();
public User getUser()
{
return user;
}
public void setUser(User user)
{
this.user = user;
}
public String execute() throws Exception{
//处理过程
}
}
同时表单不再需要user前缀了,
<input type="text" name="username">
<input type="password" name="password">
在success.jsp上可以使用<s:property value="username">来进行程序了
3直接使用action的属性接收用户输入
在LoginAction中添加相应的属性,
public class LoginAction implements Action {
private String username;
private String password;
//添加username,password的getter,setter方法
public String execute() throws Exception{
//处理过程
}
}