UnknownHandler
未知处理器
从struts2.1 开始 ,struts2配置文件的DTD中增加了<unknown-handler-stack…/>和<unknown-handler-ref…/>,这个元素用于配置Struts2的未知处理器。
当用请求未知Action、或指定action里的未知方法、或action 处理结束之后返回一个未知result ,struts2允许使用处理器来处理这些方法。
未知处理器需要实现 UnknownHandler 接口,该接口里包含来了3个方法:
HandleUnknownAction:用户请求未知Action时,该方法见会被回调。
HandleUnknownActionMethod: 用户请求指定Action的未知方法时,该方法将会被回调。
HandleUnKnownResult: action处理结束之后返回一个位置Result时,该方法将会被回调。
代码如下:
package com.struts2.action; import org.apache.struts2.dispatcher.ServletDispatcherResult; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.Result; import com.opensymphony.xwork2.UnknownHandler; import com.opensymphony.xwork2.XWorkException; import com.opensymphony.xwork2.config.entities.ActionConfig; public class MyUnKnownHandler implements UnknownHandler{ /** * @param namespace 用户请求的action所在的命名空间 * @param actionName 用户请求的Action的名字 * @return 该Action最后生成的ActionConfig,可以返回null */ @Override public ActionConfig handleUnknownAction(String namespace, String actionName) throws XWorkException { // TODO Auto-generated method stub return null; } /** * @param action 用户请求的Action对象 * @param methodName 用户请求的Action 的方法名 * @return 该Action 的该方法处理后返回的Result。 */ @Override public Object handleUnknownActionMethod(Object action, String methodName) throws NoSuchMethodException { // TODO Auto-generated method stub return null; } /** * @param actionContext 该result所在ActionContext * @param actionName 该result所在的Action名 * @param actionCofig 该result所在ActionContext * @param resultCode 该result所对应的逻辑视图字符串 * @return 将要被处理的结果,可以返回null */ @Override public Result handleUnknownResult(ActionContext actionContext, String actionName, ActionConfig actionConfig, String resultCode) throws XWorkException { // TODO Auto-generated method stub actionContext.put("action", actionName); actionContext.put("result", resultCode); return new ServletDispatcherResult("/unknownResult.jsp"); } }
相关的配置:
<!-- 使用bean 定义一个UnknownHandler -->
<bean name="yeekuHandler" type="com.opensymphony.xwork2.UnknownHandler" class="com.struts2.action.MyUnKnownHandler"></bean> //定义未值处理栈
<unknown-handler-stack>
<unknown-handler-ref name="yeekuHandler"></unknown-handler-ref>
</unknown-handler-stack>
UnknownHandler的更多相关文章
- 菜鸟学Struts2——零配置(Convention )
又是周末,继续Struts2的学习,之前学习了,Struts的原理,Actions以及Results,今天对对Struts的Convention Plugin进行学习,如下图: Struts Conv ...
- Python3使用urllib访问网页
介绍 改教程翻译自python官网的一篇文档. urllib.request是一个用于访问URL(统一资源定位符)的Python模块.它以urlopen函数的形式提供了一个非常简单的接口,可以访问使用 ...
- Struts2 源码分析——配置管理之ContainerProvider接口
本章简言 上一章笔者讲到关于Dispatcher类的执行action功能,知道了关于执行action需要用到的信息.而本章将会讲到的内容也跟Dispatcher类有关系.那就是配置管理中的Contai ...
- python2 与 python3 urllib的互相对应关系
urllib Python2 name Python3 nameurllib.urlopen() Deprecated. See urllib.request.urlopen() which mirr ...
- cookielib和urllib2模块相结合模拟网站登录
1.cookielib模块 cookielib模块的主要作用是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问Internet资源.例如可以利用 本模块的CookieJar类的对 ...
- Urllib2 总结
Urllib2 总结 介绍 Urllib2是用于获取URLs(统一资源定位符)的一个Python模块.它以urlopen函数的形式提供了非常简单的接口.能够使用各种不同的协议来获取网址.它还提供一个稍 ...
- struts2支持的结果类型
在struts2-core.jar/struts-default.xml中,我们可以找到关于result-type的一些配置信息,从中可以看出struts2组件默认为我们提供了这 些result-ty ...
- Python之urllib2
urllib2 - extensible library for opening URLs Note The urllib2 module has been split across several ...
- python的urllib2库详细使用说明
一直以来技术群里会有新入行的同学提问关于urllib和urllib2以及cookielib相关的问题.所以我打算在这里总结一下,避免大家反复回答同样的问题浪费资源. 这篇属于教程类的文字,如果你已经非 ...
随机推荐
- OpenStack中Keystone的基本概念理解
原文http://www.kankanews.com/ICkengine/archives/10788.shtml Keystone简介 Keystone(OpenStack Identity Ser ...
- mongoDB的安装(一)
0.安装环境说明: linux系统:centos6.5 mongoDB版本:mongodb-linux-x86_64-rhel62-3.2.7.tgz 1.下载 mongoDB的下载:https:// ...
- EF继承关系映射
继承映射策略的三种策略 There are following three different approaches to represent an inheritance hierarchy in ...
- BI报表系统在银行业的应用
在当前大数据的背景下,银行业传统联机业务技术存在开发周期长.不够灵活.大量的业务数据难以充分利用.操作复杂.监控效率低等弊端,多数企业表示需要搭建一个符合银行特色的商业智能平台,把需要的数据和信息集中 ...
- ECharts 初体验
缘起 ECharts,缩写来自Enterprise Charts,商业级数据图表,它最初是为了满足公司商业体系里各种业务系统(如凤巢.广告管家等等)的报表需求.以前这些系统的图表需求我们都是使用fla ...
- 如何用ZBrush快速绘制身体
Fisker老师用了5节课详细讲解了僵尸的头部制作过程,用了大量时间完善细节部分,在ZBrush3D图形绘制软件中雕刻模型就是这样,需要反复调整与修改,每一个细节都做到极致才是最理想的状态.头部雕刻好 ...
- NOIP2010关押罪犯[并查集|二分答案+二分图染色 | 种类并查集]
题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨气值”(一个正整数值)来表示 ...
- [No000054] Windows 下Python3.5, NoteBook增强版安装
接着上周继续,没看的童鞋.请移步: http://www.cnblogs.com/Chary/p/No00004B.html 这里,假设你已经能够看到这个画面了: 接下来,我们继续 给药 : 安装no ...
- Nginx 日志中记录cookie
在http节点下添加 log_format mai2 '$remote_addr - $remote_user [$time_local] "$request" ' '$statu ...
- k-develop 在ros上面的应用
sudo apt-get install kdevelop 根据wiki上面的ros 章节中,关于kdevelop的介绍,配置好环境即可. 导入工程时,选中src/src下面的章节,不过,需要注意去掉 ...