1.异常映射的配置 当Action方法出错时Struts会返回异常错误信息页面,这种页面方式是不友好的,可以使用try-catch捕捉异常,然后在catch块中返回对应的错误页面.这种为单个<action>设置异常映射的方式称为局部异常映射.如果要让所有的<action>的各种异常发生时统一跳转到错误页面需要通过 <global-exception-mappings>设置全局异常映射.配置部分: <global-exception-mappings> <…
struts-defualt.xml指定的result的类型 1.struts-defualt.xml 文件的 181 行 开始定义了: <result-types> <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/> <result-type name="dispatcher" class="org.a…
一:拦截器的工作原理 拦截器的执行过程可以类比filter过滤器,ActionInvocation实例执行过程中,先执行action实例上引用的拦截器们,然后才执行action实例处理请求,返回result,决定响应内容(注:此时还没进行响应!),然后倒序再执行一遍拦截器们,才通过response进行响应. 二:拦截器的使用 1:定义拦截器类 法一:实现Interceptor接口定义拦截器类 实现接口需要重写三个方法,分别是初始化方法.销毁方法.拦截方法,一般我们只需重写拦截方法即可. 参数Ac…
首先我们先来直接配置,然后再来讲原理: 第一步:jar包的引入: 我们可以到struts2的官网上下载: http://struts.apache.org/download.cgi#struts2513 然后解压将里面的app文件夹下的示例war文件解压,将里面的struts.xml复制到我们新创建的src目录下(特别说一下,struts2最新的Struts 2.5.13版本压缩包里面没有示例的blank示例文件,我是在2.3.34里面获得的) 配置文件大概是这样的: <?xml version…
1.概述 Struts2的很多核心功能都是由拦截器完成的. 拦截器很好的实现了AOP的编程思想,在动作的执行之前和结果的返回之后,做拦截处理. 2.struts2的默认拦截器栈 3.自定义拦截器 Struts2提供的拦截器有很多,有些并不是默认的,如果需要只能手动打开.当然,也可以自定义拦截器. 1.定义 创建一个类,继承AbstractInterceptor或者实现Interceptor. public class TimerInterceptor extends AbstractInterc…
当Action类的方法处理请求后,会返回一个字符串(逻辑视图名),框架根据这个结果码选择对应的result,向用户输出,所以需要在struts.xml提供<result>元素定义结果页面,这个结果页面可以是局部结果页面或者全局结果页面. 1. 局部结果页面和全局结果页面 1)局部结果页面 <action name="result" class="cn.sunny.action.ResultAction"> <!-- 局部结果当前Acti…
OGNL,全称为Object-Graph Navigation Language(对象图表达语言),它是一个功能强大的表达式语言,用来获取和设置Java对象的属性,调用java对象的方法,同时能够自动实现必要的类型转换.它旨在提供一个更高的更抽象的层次来对Java对象图进行导航.如果把表达式看作是一个带有语义的字符串,那么OGNL无疑成为了这个语义字符串与Java对象之间沟通的桥梁. OGNL:对象视图导航语言. ${user.addr.name} 这种写法就叫对象视图导航.OGNL不仅仅可以视…
一.什么是Ognl? 通过百度百科查询到的解释,其中详细的说明了OGNL的作用. 下面我们就对OGNL这5个作用进行讲解 1.存取对象的任意属性,简单说就是对javabean进行操作(重要) 2.调用对象方法. 3.调用类的静态方法 4.索引数组元素 5.操作集合(重 要) 二.OGNL的功能实现 操作之前必须知道如何使用OGNL表达式,并且了解OGNL表达式的取值范围只能在其context和root中,格式为 Ognl.getValue(expression,context,root); //…
一.contextMap中的数据操作 root根:List 元素1 元素2 元素3 元素4 元素5 contextMap:Map key value application Map key value name test session Map request Map attr Map 1.存数据: 需要熟悉ActionContext和valueStack的API.框架为我们存数据. 1.1.利用ActionContext存数据 1.2.利用ValueStack存数据 a.如何获取ValueSt…
项目中,申请者申请某些事项以后,常常需要在申请列表中查看当前申请的记录所在的审批状态,动态美观的显示状态可以使UI更符合客户要求,比如下面这样. 以Goods__c表为例,申请者申请的一些采购以前需要得到批准,申请者列表需要显示所有的申请记录,状态(Status__c)有以下情况: 直线经理审批; 部门经理审批; 总经理审批; 审批通过. 实现上述方式主要实现思路:首先通过css画出来审批的步骤图,没有到达的灰色显示,经过或者正在步骤绿色显示,比如当前步骤为部门经理审批,则直线经理审批和部门经理…