Struts2之action接收请求参数

来源:互联网 发布:html5斗地主源码 编辑:程序博客网 时间:2024/05/16 14:26

1. 采用基本类型接受请求参数(get/post)

action:

public class GetparamAction extends ActionSupport {
private int age;
private String name;
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;
}
public String get() {
System.out.println( "age=" + age + "name=" + name);
return "get";
}
}

JSP:

<a href="${pageContext.request.contextPath }/getparam/GetparamAction.action?name=aa&age=11">请求GetparamAction</a>

说明:看了别人写的,“在Action类中定义与请求参数同名的属性,struts2便能自动接收请求参数并赋予给同名的属性。”,其实这句话是不对的,这会让人误以为action属性名必须和请求参数名一样,其实action类中的属性名不一定要和请求参数同名,可以试验一下。Struts2是通过反射技术调用了set方法来获取请求参数的。

如:请求参数str=aa,那么就会去调用action中的

public void setStr(String 参数名){

this.name=参数名;//但是不推荐这样写,这样没约定好,可读性差

//这样同样能接收到参数

}

请求参数名要和set***方法中的***匹配,这样就会调用相应的set方法。

2. 采用复合类型接受请求参数

action:

public class DomainModelAction extends ActionSupport {
private Person person;//Person类
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}

public String test() {
System.out.println("name:" + person.getName());
System.out.println("age:" + person.getAge());
return "test";
}


}

jsp:

<a href="${pageContext.request.contextPath }/getparam/DomainModelAction.action?person.age=22&person.name=aa">请求DomainModelAction</a>

转到get.jsp

获取属性<s:property value="person.name"/>

          <s:property value="person.age"/>

0 0