struts2 表单数据如何被封装为POJO的过程
2018-07-19 · 国内最优秀java资源共享平台
关注
展开全部
1. 使用原始方式获取表单到实体类对象
没什么好讲的非常简单
2. 属性封装
直接把表单提交属性封装到action的属性里面
实现步骤
在action成员变量位置 变量名称和表单输入项的name属性值一样
生成变量的set方法(set和get方法都写出来)
用属性封装获取表单数据到属性里面 不能把数据直接封装到实体类对象里面
案例:
action
public class DemoAction extends ActionSupport {
private String username;
private String password;
private String address;
//set ,get 方法省去;
@Override
public String execute() throws Exception {
System.out.println(username+" "+password+" "+address);
return NONE;
}
}
struts.xml
<action name="test" class="wwww.ijava.com.DemoAction"></action>
jsp
<form action="${pageContext.request.contextPath}/test.action" method="post">
username:<input type="text" name="username"/>
<br/>
password:<input type="text" name="password"/>
<br/>
address:<input type="text" name="address"/>
<br/>
<input type="submit" value="提交"/>
</form>
模型驱动封装
使用模型驱动方式 可以直接把表单数据封装到实体类对象里面
实现步骤:
action实现接口 ModelDriver
实现接口里面的方法 getModel方法 把创建对象返回
在action里面创建实体类对象
使用模型驱动和属性封装注意问题
在一个action中 获取表单数据可以属性封装 也可以使用模型驱动
但不能同时使用属性封装和模型驱动封装获取同一个表单数据 如果同时使用 只会执行模型驱动
没什么好讲的非常简单
2. 属性封装
直接把表单提交属性封装到action的属性里面
实现步骤
在action成员变量位置 变量名称和表单输入项的name属性值一样
生成变量的set方法(set和get方法都写出来)
用属性封装获取表单数据到属性里面 不能把数据直接封装到实体类对象里面
案例:
action
public class DemoAction extends ActionSupport {
private String username;
private String password;
private String address;
//set ,get 方法省去;
@Override
public String execute() throws Exception {
System.out.println(username+" "+password+" "+address);
return NONE;
}
}
struts.xml
<action name="test" class="wwww.ijava.com.DemoAction"></action>
jsp
<form action="${pageContext.request.contextPath}/test.action" method="post">
username:<input type="text" name="username"/>
<br/>
password:<input type="text" name="password"/>
<br/>
address:<input type="text" name="address"/>
<br/>
<input type="submit" value="提交"/>
</form>
模型驱动封装
使用模型驱动方式 可以直接把表单数据封装到实体类对象里面
实现步骤:
action实现接口 ModelDriver
实现接口里面的方法 getModel方法 把创建对象返回
在action里面创建实体类对象
使用模型驱动和属性封装注意问题
在一个action中 获取表单数据可以属性封装 也可以使用模型驱动
但不能同时使用属性封装和模型驱动封装获取同一个表单数据 如果同时使用 只会执行模型驱动
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询