*在Action类中的传统封装方式:
//获取表单中的数据 HttpServletRequest request = ServletActionContext.getRequest(); String username = request.getParameter("username"); String password = request.getParameter("password") //封装到实体类user对象中 User user = new User(); user.setUsername(username); user.setPassword(password);
传统方式的缺点:当表单中的数据太多时,传统封装方式的效率是比较低的,代码量也会变得非常大。所以一般不采用这种方式封装方式。下面我们来看一些比较常用的封装方式:
*属性封装:
1、把表单提交的数据封装到Action类的属性里。
注意:成员变量名称必须和表单输入项的name属性值相同,否则底层就会匹配不到。//Action类的代码 public class DataResultAction extends ActionSupport{ //成员属性 private String username; private String password; //set和get方法 public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String execute(){ System.out.println(username+":::"+password); return NONE; } }
2、form表单的具体实现:
<!-- data4Result.action为struts.xml文件中action标签上的name值 --> <form action="${pageContext.request.contextPath }/data4Result.action" method="post"> username:<input type="text" name="username"/> password:<input type="password" name="password"/> <br/> <input type="submit" value="提交"/> </form>
属性封装是将表单中的数据封装到了Action类的属性中,并没有将数据封装到对象中,所以需要在特定的场合下使用。(当然属性封装也是可以实现对对象的封装的,但是运用的不多,有兴趣的朋友可以了解一下)。*模型驱动封装(这种封装方法是最常用的)
理解:模型驱动封装是直接将表单中的提交的数据封装到实体类对象中。
具体实现:
1、让Action类实现接口ModelDriven
2、实现接口里面的getModel方法
3、在Action类中成员位置建立实体类对象
Action类代码如下:
而至于form表单中的代码跟属性封装中的form表单中代码一样,就不再赘述了。public class Data3ResultAction extends ActionSupport implements ModelDriven<User>{ //创建实体类 //确保表单属性name值要和实体类属性一样,因为底层是通过这个匹配的 private User user = new User(); //将user对象放入到request中,从而跳转到“user”对应的页面上。 public String execute(){ HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("user", user); return "user"; } //封装实体类的方法。 @Override public User getModel() { // TODO Auto-generated method stub return user; } }
模型驱动封装是在struts表单封装中应用的最为广泛的一种封装方式,所以我们一定要掌握这种方式。
(这篇博客与上一篇的structs2的核心配置文件的执行流程分析有一定关联,有不清楚的地方可以浏览此地址:点击打开链接)
Struts2封装数据的操作
最新推荐文章于 2022-04-24 13:50:01 发布