Struts2的整体回顾(Action, 拦截器, 值栈, OGNL表示式, ModelDriven)

ValueStack里有map(request, session, attr, parameters)和对象栈.

Map调用的方法: ActionContext.getContext().put(k,v)/ get(k)

对象栈的调用方法: ActionContext.getContext.getValueStack().push(obj)/pop();

OGNL格式:

struts.xml, OGNL的格式为: ${ognl}

jsp里 OGNL的格式为: %{ognl}

语法:

user=findValue("user")   //优先从对象栈里找, 避免重复, 不建议使用

#user=map.get("user")  //建议使用, 这个是从map里找

#user.name=map.get("user").getName();

表单回显:

EL表达式默认的查找顺序:page, request, valueStack.findValue(), session,application.

时间: 2024-08-28 20:21:11

Struts2的整体回顾(Action, 拦截器, 值栈, OGNL表示式, ModelDriven)的相关文章

Struts2学习第三天——拦截器与文件传输

文档版本 开发工具 测试平台 工程名字 日期 作者 备注 V1.0 2016.06.15 lutianfei none 内容摘要: 1.国际化(了解) 2.拦截器(Interceptor)-重点 3.struts2文件上传与下载(次重点) 4.ognl与valuestack 国际化 国际化原理,什么是国际化 ? 同一款软件 可以为不同用户,提供不同语言界面 -- 国际化软件 需要一个语言资源包(很多properties文件,每个properties文件 针对一个国家或者语言 ,通过java程序根

ASP.NET MVC的Action拦截器(过滤器)ActionFilter

有时项目要进行客户端请求(action)进行拦截(过滤)验证等业务,可以使用拦截器进行实现,所谓的action拦截器也没有什么的,只是写一个类,继承另一个类(System.Web.Mvc.FilterAttribute)和一个接口(System.Web.Mvc.IActionFilter),至于什么是拦截器这里就不说了,网上很多关于这方面文章. 假如现在有这样的一个需求:某个action需要登录才能进行访问,可以使用action属性拦截器进行拦截进行验证 多余的不说了直接上代码 写一个拦截器类:

Struts2重新学习之自定义拦截器(判断用户是否是登录状态)

拦截器 一:1:概念:Interceptor拦截器类似于我们学习过的过滤器,是可以再action执行前后执行的代码.是web开发时,常用的技术.比如,权限控制,日志记录. 2:多个拦截器Interceptor连在一起组成了Interceptor栈.拦截器是AOP面向切面编程的一种实现,具有热插拔的效应. 3:Struts2拦截器,每个拦截器类只有一个对象实例,即采用了单利模式.所有引用这个拦截器的action都共享着一拦截器类的实例. 拦截器和过滤器的区别 1:拦截器和过滤器的概念非常类似 2:

(十)Struts2 值栈/OGNL

值栈是一组对象,按照提供的顺序存储以下这些对象: 序号 对象和说明 1 Temporary对象 实际中存在各种在页面执行期间创建的temporary对象.例如,JSP标签循环集合的当前迭代值. 2 Model对象 如果在struts应用程序中使用Model对象,则当前Model对象放在值堆栈上的action之前. 3 Action对象 这是指正在执行的当前action对象. 4 命名对象 这些对象包括#application,#session,#request,#attr和#parameters

Struts2学习第4天--拦截器

第1章     Struts2_day04笔记 1.1      上次课内容回顾 l  OGNL表达式 n  OGNL的概述 u  OGNL:对象图导航语言,是一门功能强大的表达式语言. n  OGNL的功能 u  调用对象的方法 u  调用对象的静态方法 u  表达式串联 u  访问ActionContext和OgnlContext数据 n  OGNL独立的表达式: u  Java环境下入门 u  Struts2环境下入门 l  值栈 n  值栈的概述 u  ValueStack:是一个接口,

[原创]java WEB学习笔记74:Struts2 学习之路--自定义拦截器,struts内建的拦截器

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

EntityFramework6.0的Sql读写分离拦截器 和 MVC的 Action拦截器 对比

EF的DbCommandInterceptor类 拦截: EF6.1也出来不少日子了,6.1相比6.0有个很大的特点就是新增了System.Data.Entity.Infrastructure.Interception 命名空间,此命名空间下的对象可以允许我们更加方便的了解到EF运行时的一些信息,当然我们最想看的还是EF生成的Sql语句,话不多讲,开始干吧; class EFIntercepterLogging : DbCommandInterceptor { private readonly

struts2进阶【6】——拦截器

小解拦截器 可以说,"拦截器"是Struts2的重点内容.见名知义,拦截器的作用主要就是拦截东西,拦截什么呢?当然是'action'了,在执行'action'之前 拦截器会起作用,执行一些预先处理的代码,接着去执行action中相关的方法,之后,流程又会回到拦截器里面,接着去执行后续的一些操作. 在这里还要提两点: 1. Struts2拦截器是可插拔的,拦截器是AOP的一种实现. 2. 拦截器栈(Interceptor Stack).Struts2拦截器栈就是将拦截器按一定的顺序联结成

Struts2利用token和tokenSession拦截器防止重复提交

有时候网络响应慢,用户可能会再次点击提交按钮,或者在保存页面refresh 也会造成重复提交,这样会造成数据库中有多条相同的数据: 我们当然可以利用js来控制,但是如果浏览器禁用了JS,那就不能控制了. Struts2中设计了token和tokenSession拦截器来拦截重复提交: jsp页面: 1 <@ taglib prefix="s" uri="/struts-tags" /> 2 3 <s:form action="testTo