博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts 2.5 访问未定义 action 时报错的问题
阅读量:6648 次
发布时间:2019-06-25

本文共 1009 字,大约阅读时间需要 3 分钟。

转载请注明:

使用 struts 的时候我们自己设计的action毕竟是有限的,那么我们就需要使用一种方法来限制用户输入未定义的action。

网上很多解决方案都是一个抄一个,没有自己的实践和总结。虽然我预感到很快我的这篇博客又会被爬虫盗走,不过还是写出来,给需要帮助的新人一点微小的贡献,少走一些弯路。

 

众所周知,struts 2.5 是支持注解配置的,因此我们当然应该尽可能遵循简单的原则。因此这篇博客是尽可能使用注解进行配置的。注解和 xml 配置各有利弊,因此通常我们需要结合使用注解和 xml。

我们直到,当我们访问未定义页面时,会出现报错,大意是找不到一个名为 XXX 的action。如何处理呢?经过我自己的测试和思考,我发现这是 struts 2 内部的 com.opensymphony.xwork2.config.ConfigurationException 的错误。我们如果使用 struts 自己的 <global-excepton-mappings/> 是无法捕获的。也就是说,struts 2 只能捕获后端抛出的异常,而对自身的异常无法简单的通过配置来捕获和处理。

 

那么问题来了,当用户访问一个不存在的aciton,如何跳转到友好的 404 页面呢?

 

基本的思路是:定义一个默认 action, 当找不到一个指定 action 时,就进入这个 action 并跳转到友好的 404 页面。

如果是基于 xml 配置,那我们随手一找,就能找到一大堆,我就不赘述了。

如果是基于注解,那么我们需要这么做:

1. 写一个 action 方法,专门处理上述情况

2. 将 action 的 result 指向我们指定的友好的 404 界面

3. 切记,不要在 xml 进行上述操作,而要将这个方法写在 java 类中

4. 在 xml 中配置一个默认的 package, 让所有 package 继承此 package,然后在这个默认的 package 中,引用 我们刚刚写好的 action 作为默认 action,然后就 ok 了。

实例如下:

在这个例子中,我的action 名称为 noSuchAction,是一个基于注解的 action

 

  

转载于:https://www.cnblogs.com/luruiyuan/p/6548172.html

你可能感兴趣的文章
eclipse修改android项目的apk包名类名
查看>>
斐讯路扫地机器人怎么关机_扫地机器人使用方法,使用教程
查看>>
java 二元一次方程式_JAVA求解一元一次二次方程
查看>>
上车是什么意思_“上车饺子下车面”,是什么意思?看完心里暖暖的
查看>>
anaconda安装python3消失_Python学习第47课-安装Python以及anaconda介绍
查看>>
centos7中编译安装nodejs_Docker(一)CentOS7中安装Docker视频教程
查看>>
ug装配绕轴旋转_UG模具设计培训就到新科教育
查看>>
Unix整理笔记-超级无敌常用命令杂谈1-里程碑M6
查看>>
CloudStack4.1.1升级CloudPlatForm4.2.0实践手册
查看>>
Centos安装各种数据分析库,numpy,pandas,matplotlib,seaborn,scipy
查看>>
C#基础知识整理:C#类和结构(3)
查看>>
SharePoint Server 2010 初始化
查看>>
【我眼中的戴尔转型】(四)惠普之道,月亮的脸悄悄地在改变
查看>>
***S 2012 聚合函数 -- 指定分页示例
查看>>
直播疑难杂症排查(3)— 首开慢
查看>>
某公司机房成功搭建openssh server跳板服务器
查看>>
ADT在線互動教學
查看>>
PowerShell 添加 自定义的ScriptProperty 属性
查看>>
Shell一些例子
查看>>
C#中传值调用和传引用调用的理解
查看>>