Struts2请求参数封装二————属性驱动,有实体类
-实体类与动作类成功分离。
相较于属性驱动,无实体类
https://blog.youkuaiyun.com/a98764321a12346789a/article/details/119768833
仅有form表单中name属性的区别
需要使用OGNL语言去定义name元素值
即user.name,user.age等user 与getter方法的属性名保持一致
具体实现如下:
form表单:
<form action="${pageContext.request.contextPath}/hello" method="post">
user:<input type="text" name="user1.user"/><br/>
age:<input type="text" name="user1.age"><br/>
hobby: <input type="checkbox" value="Eating" name="user1.hobby">Eating<input/>
<input type="checkbox" value="Sleeping" name="user1.hobby">Sleeping<input/>
<input type="checkbox" value="Coding" name="user1.hobby">Coding<input/><br/>
<input type="submit" value="submit">
</form>
struts.xml
<struts>
<constant name="strutrs.devMode" value="true"/>
<package name="p1" extends="struts-default">
<action name="hello" method="sayHello" class="com.myit.web.action.HelloAction" >
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
HelloAction
public class HelloAction extends ActionSupport {
private User user1;
public User getUser1() {
return user1;
}
public void setUser1(User user1) {
this.user1 = user1;
}
public String sayHello() {
System.out.println(user1);
return SUCCESS;
}
}
User 实体类
package com.myit.web.action;
public class User {
private String user;
private Integer age;
private String hobby;
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
@Override
public String toString() {
return "User [user=" + user + ", age=" + age + ", hobby=" + hobby + "]";
}
}