javaWeb--Struts2框架之三

来源:互联网 发布:工业产品动画制作软件 编辑:程序博客网 时间:2024/06/08 19:57

在实际开发中我们对于数据的封装都是通过模型驱动来进行的。

实现模型驱动的步骤

1.实现一个模型驱动:implement  ModelDriver

2.实现接口中的getModel()方法

3.在使用模型驱动的时候,数据模型必须要由我们自己来实例化
  拦截器:是由一个ModelDriver实现的 。


package com.itheima.web.action;import com.itheima.domain.User;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;import com.sun.org.apache.bcel.internal.generic.NEW;public class HelloAction4 extends ActionSupport implements ModelDriven<User> {private User user = new User();@Overridepublic User getModel() {// TODO 自动生成的方法存根return user;}public  String addUser() {System.out.println(user.getAge()+"\n"+user.getUsername());return SUCCESS;}public User getUser() {return user;}public void setUser(User user) {this.user = user;}     }

strut.xml:


<action name="qq" class="com.itheima.web.action.HelloAction4" method="addUser"><result name="success">/success.jsp</result></action>


index.jsp:


<form action="${pageContext.request.contextPath }/qq.action" method="post"> 用户名:<input type="text" name="username"/><br/> 年龄:<input type="text" name="age"/><br/> <input type="submit" value="提交"/></form>

在浏览器中打开之后,输入111  222

终端会打印信息:

222
1111



模型驱动实现的原理:

其实从源码上看也是封装了一个过滤器,通过方法过滤器,然后通过getModel方法把对象获取过去,在源码进行强转之后,再通过捕获到的浏览器request中中的数据填充到对象中,最后通过调用action对应的method方法来实现对模型对象的操作。


原创粉丝点击