ModelDriven拦截器的用法

流程:
1.当用户请求某个action执行某个功能时(如addInfo),如果此Action实现了ModelDriven这个接口,则ModelDriven的拦截器首先会拦截当前操作的请求,通过此Action的getModel方法,将ModelDriven<PersonInfo>中的实体类PersonInfo压入到ValueStack的栈顶。
2.然后Parameters拦截器将拦截到的请求参数,根据表单字段映射到ValueStack栈顶对象的属性上,如果栈顶对象没有此表单字段,则继续寻找下一个对象进行匹配,直至结束为止。
时间: 2024-11-05 09:01:27

ModelDriven拦截器的用法的相关文章

[原创]java WEB学习笔记64:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) ModelDriven拦截器 paramter 拦截器

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

从源代码剖析modelDriven拦截器和params拦截器和拦截器prepare 和paramsPrepareParamsStack拦截器栈(使您的Struts2代码更加简洁——怎样培养框架设计能力

源代码文件出处:Web App Libraries/struts2-core-2.3.15.3.jar/struts-default.xml 拦截器modelDriven: <interceptor name="modelDriven" class="com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor"/> 拦截器params: <interceptor name="par

springMVC 拦截器 HandlerInterceptor 用法

一.HandlerInterceptor 用法 第一步:注册拦截器 <!-- 注册拦截器 --> <mvc:interceptors> <bean class="com.project.base.interceptor.ControlInterceptor" /> </mvc:interceptors> 第二步:继承HandlerInterceptor ,实现拦截器 public class ControlInterceptor impl

springMVC之mvc:interceptors拦截器的用法

1.配置拦截器 在springMVC.xml配置文件增加: <mvc:interceptors> <!-- 日志拦截器 --> <mvc:interceptor> <mvc:mapping path="/**" /> <mvc:exclude-mapping path="/static/**" /> <bean class="拦截器java代码路径" /> </mvc:

spring aop中引介拦截器的用法

public class Other implements IntroductionInterceptor,IOther{ public void doOther(){ System.out.println("Other对象的功能"); } public Object invoke(MethodInvocation methodInvocation) throws Throwable { if(implementsInterface(methodInvocation.getMethod

ModelDriven 和 Preparable 拦截器

首先了解Params 拦截器 作用:Parameters 拦截器将把表单字段映射到 ValueStack 栈的栈顶对象的各个属性中. 如果某个字段在模型里没有匹配的属性, Param 拦截器将尝试 ValueStack 栈中的下一个对象 把表单的值赋给栈顶对象的属性   此时栈顶对象即为 Action 在实际的使用中我们想  把 Action 和 Model 清晰地隔离开是有必要的: 有些 Action 类不代表任何Model 对象, 它们的功能仅限于提供显示服务 问题:所以我要在Params

为何使用二次参数拦截器栈,,为何需要在beforeInput() [即prepareInput(),本项目中分装为beforeInput()方法] 方法中获取employee

因为,使用模型驱动,可以将不为空的employee压入栈顶,从而使得页面中以employee的属性名作为name的Struts标签元素能够获取到对应属性名的属性值,在点击修改后,可以实现回显. 具体的: 由于modelDriven拦截器先于input()方法执行,因此需要将获取employee的方法提前到modelDriven拦截器之前,即在prepareInput()方法获取employee,此时employee就不空了,再在后面执行到modelDriven拦截器时就将employee对象放入

Struts2请求数据处理及拦截器(二)

简介 以后如果没有特殊的要说,就在简介中介绍一下大概的知识点.今天主要学习封装请求参数及类型转换.用户输入校验.国际化.拦截器 Struts2封装请求参数的方式 方式一: Action 本身作为model对象,通过成员setter封装(一个名字为params的拦截器实现的) 产生疑问:使用第一种数据封装方式,数据封装到Action属性中,不可能将Action对象传递给 业务层 * 需要再定义单独JavaBean ,将Action属性封装到 JavaBean,得出第二种方式 方式二: 动作类和模型

认识拦截器

认识拦截器 什么是拦截器 拦截器也是一个类 拦截器可以在Action被调用之前和之后执行代码 框架的很多核心功能是拦截器实现的 拦截器特点 拦截器自由组合,增强了灵活性.扩展性,有利于系统解耦 拦截器可以拦截Action请求 在访问的Action执行之前和执行之后执行代码实现某项功能 在哪儿使用拦截器 Struts2: 大部分功能是在拦截器中实现的 如:接收输入的参数.数据验证.文件上传.国际化等 应用程序: 需要在Action执行的前后执行特定功能时 Action执行时间统计,Action访问