我们需要在Action中接收从页面传递过来的参数,但是在Action中并没有request,session,application对象,这个就不能像我们在jsp、servlet中那样接收参数了。但是struts已经想到了这一点,也已经设计好了方法帮助我们去接收参数。
下面看一个Action类:
package com.mengxiangyue.struts2.user.action;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
private String name;
private int age;
public String add() {
System.out.println("name=" + name);
System.out.println("age=" + age);
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
在这个类中定义了name和age属性,并且实现了对应的get、set方法。这个看起来类似javabean,但是它并不是标准的javabean。
有了这个Action后,我们就可以在页面中直接使用这样的方法传递参数了:<a href="user/user!add?name=a&age=8">。这里使用的连接的方式,我们也可以改成使用表单。使用这样的方式,struts会自动将传递过来的参数值赋值给对应的属性。这里说明一点,在这里struts使用的是对应的set方法,不是直接对属性赋值,所以我们可以将里面的属性名字随便写,只要对应的set方法与传递的参数对应就可以了。但是一般不这么做。
在这里我没有列出struts.xml文件的内容,里面就是简单的配了一个叫user的action。