接受请求参数的原理
在struts2中没有actionForm ,jsp中的表单元素可以在action中定义同名的名称来接受请求参数
然后生成set方法
内部机制:struts2的拦截器,会根据页面提交到action的参数,用放反射技术在action中寻找同名的
属性,然后调用action的set方法注入属性值
此外,如果在action中的属性太多,可以包装成一个对象 ,用法参考下面的代码
原理解析:根据表单元素的名称,person.**去寻找action中person属性,如果person为空,
用反射机制new出person对象 ,然后注入person的属性值 , person类必须要有默认的构造函数
<form action="<%=request.getContextPath()%>/control/employee/list_execute.action" method="post">
id:<input type="text" name="person.id"><br/>
name:<input type="text" name="person.name"><br/>
<input type="submit" value="发送"/>
</form>
public class Person {
private String name;
private Integer id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
private Person person;
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
在struts2中没有actionForm ,jsp中的表单元素可以在action中定义同名的名称来接受请求参数
然后生成set方法
内部机制:struts2的拦截器,会根据页面提交到action的参数,用放反射技术在action中寻找同名的
属性,然后调用action的set方法注入属性值
此外,如果在action中的属性太多,可以包装成一个对象 ,用法参考下面的代码
原理解析:根据表单元素的名称,person.**去寻找action中person属性,如果person为空,
用反射机制new出person对象 ,然后注入person的属性值 , person类必须要有默认的构造函数
<form action="<%=request.getContextPath()%>/control/employee/list_execute.action" method="post">
id:<input type="text" name="person.id"><br/>
name:<input type="text" name="person.name"><br/>
<input type="submit" value="发送"/>
</form>
public class Person {
private String name;
private Integer id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
private Person person;
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}