structs可以对参数进行自动封装,做法也很简单.
一,action参数自动封装:
1,可以直接在action类中,声明public的属性,接受参数。
2,属性也是是private,如果是private,需要提供setter方法,也可以根据需要提供getter方法。
3,struts可以自动对类型进行转换,一般我们会传递String类型的参数,struts可以转换成默认声明的变量类型
4,调用api时候,传递的参数名必须和action类中声明的名称相同。
public class UserAction extends ActionSupport {
private static final long serialVersionUID = 1L;
public String username;
public String pw;
public Integer age;
public Date birthday;
private Double balance;
public void setBalance(Double balance) {
this.balance = balance;
}
public String login() {
// 获取所有参数
System.out.println("login with username: " + username + " ,password: "
+ pw + ", age:" + age + ", birthday:" + birthday + ", balance:"
+ balance);
return SUCCESS;
}
}
二,参数的类型转换
从上面看,默认struts2可以自动进行类简单型转换(八种基本类型),但是有时候可能我们希望转换成复杂的效果,这个时候,就需要自己写转换器了。
两种方式:一个是实现接口,一个是继承类DefaultTypeConverter
不想贴代码了,参考: