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方法来实现对模型对象的操作。
阅读全文
0 0
- javaWeb--Struts2框架之三
- JavaWeb三大框架之---struts2详解
- JavaWeb开发之SSH框架整合——Struts2+Spring3+Hibernate3三大框架的整合
- javaWeb--struts2框架之二解释
- 三大Javaweb框架的工作原理--Struts2+Hibernate+Spring3
- JavaWeb三大框架(Hibernate+Struts2+Spring)
- JavaWeb -- Struts2 验证框架
- JavaWeb(框架----Struts2):-----配置
- javaWeb开发之控制层框架Struts2入门知识点总结
- 细谈Struts2框架(三)Struts2框架之ModelDriven
- javaweb三大框架
- struts2验证框架之三验证消息
- SSH三大框架之struts2
- JavaWeb框架-Struts2-1-Hello Struts2!
- JavaWeb框架-Struts2-2-帅气滴Struts2!
- javaweb框架之springmvc
- Javaweb三大框架知识点
- 三大框架之----struts2之ValueStack存取数据
- PyQt5的日期和时间
- 正则表达式
- Go1.4 编译失败:unknown relocation type 42; compiled without -fpic?
- 笔试整理 五
- HTTP协议/RTP/RTSP协议/RTMP协议的区别
- javaWeb--Struts2框架之三
- JAVA基础复习八-代码块、继承和final关键字
- 线程同步
- Servlet的再体验
- HTML/CSS重要知识集合(一)
- P2784 木块问题 本该用vector的.....
- Docker下,极速体验编译pinpoint1.6.x分支
- C语言静态链表的使用-源码
- js笔记1