Struts2接受参数方式可以分为三种。
第一种:
用action里的属性;
在action定义要接受的参数的;并提供 set get方法;
跟表单里的参数也一样,不用作强制类型转换;
public class canshuaction {
private String name;
private int age;
//省略setter,getter方法;
public String execute(){
System.out.println("name="+name);
}
}
第二种:
Domain model;
example;
package com.test.action;
import com.opensymphony.xwork2.ActionSupport;
public class DomainModelAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
public User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String execute(){
System.out.println("username:"+user.getUserName()+";passwd:"+getUser().getPasswd());
return SUCCESS;
}
}
第三种:
ModelDriven
public class ModelDrivenAction extends ActionSupport implements ModelDriven<User> {
private User user = new User();
public String execute(){
System.out.println("userame:"+user.getUserName()+";password:"+user.getPasswd());
return SUCCESS;
}
public User getModel() {
// TODO Auto-generated method stub
return this.user;
}
}
index.jsp
<body>
<h3>say hello to:</h3>
<s:form action="modeldriven" method="post">
name:<s:textfield name="username"></s:textfield>
passwd:<s:password name="passwd"></s:password>
<s:submit/>
</s:form>
</body>
welcome.jsp<body>
<!-- 属性
WELCOME:<s:property value="name"/>
<s:property value="{#session.user}[0]"/>
-->
<!--DomainModel
WELCOME:<s:property value="user.username"/><br/>
PASSWD:<s:property value="user.passwd"/>
-->
<!--ModelDriven -->
WElCOME:<s:property value="username"/>
WElCOME:<s:property value="passwd"/>
<s:debug></s:debug>
</body>