struts2.5框架使用通配符指定方法(常见错误)
参考:http://www.cnblogs.com/gsy52300/p/5778754.html
在学习struts框架时经常会使用到通配符调用方法,如下:
<package name="shop" namespace="/" extends="struts-default"> <!-- 配置Action --> <actionname="user_*" class="userAction" method="{1}"> <result name="success">/WEB-INF/jsp/login.jsp</result> </action> </package>
其中的action name="user_*"中*这个符号代表的值会传入method=“{1}”中,并对应action类的一个方法名,这样就能很大程度地减少配置文档中action的数目。
但是在使用这种通配符方法的时候,经常会看到这样的映射错误提示
Struts has detected an unhandled exception: Message:There is no Action mapped for namespace [/] and action name [user_login] associated with context path [/shop].
如果看到提示的是映射问题,你可以按照映射路线排除一遍,
第一步:先排查访问的链接有没有问题(细节问题)
第二步:查看struts.xml的配置(仔细排查,出现问题几率很大)
第三步:查看相关的action类及方法(比如return的值是不是跟配置文件中的result对应得上等)
第四步:查看结果响应页面是否存在问题(出现问题的几率比较小)
(具体的做法我不细讲了,网上很多优秀篇章都有提及,可自行百度)
如果上面的四个步骤没出问题,可是还是报错,怎么办?那就可能是内部属性配置的问题了
在Struts 2的核心jar包struts2-core中,有一个default.properties的默认配置文件(路径:struts-2.5.2-min\lib\org\apache\struts2\default.properties)里面配置了一些全局的信息
其中有条语句是配置动态方法调用的
struts.enable.DynamicMethodInvocation = true
当使用动态调用方法时(action名 + 感叹号 + 方法名进行方法调用),需要将其属性改为true,
当使用通配符调用语法时,建议将其属性改为false(struts2.5.2中默认是false)
当我们需要将其属性改成false时,
只在struts.xml配置文件中加入此句即可修改属性
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
很多网友都说改了之后都行了,不过我换了struts2.5之后,整了好久都还是不行……
最后是在配置文档struts.xml的Action中配置了
<allowed-methods>Action内的方法名</allowed-methods>才成功了
比如上面代码修改如下:
<package name="shop" namespace="/" extends="struts-default"> <!-- 配置Action --> <action name="user_*" class="userAction" method="{1}"> <result name="success">/WEB-INF/jsp/login.jsp</result> <allowed-methods>login</allowed-methods> </action> </package>
备注:红色代码中的login为对应Action类里面的方法名,可以加上多个方法,方法名之间用逗号隔开。
总结:在struts2.3之前的版本,正常的配置就可以了,但在struts2.3版本之后,使用通配符调用方法时,内部会验证是否允许访问该方法,所以要加上
<allowed-methods>方法名1,方法名2…</allowed-methods>代码。
希望这个小知识点能帮助更多编程爱好者,在java道路上,与志同道合者共勉!!
(该篇随笔由我之前的csdn博客搬家而来)
转载于:https://www.cnblogs.com/lxboy2009/p/6440239.html
struts2.5框架使用通配符指定方法(常见错误)相关推荐
- 父类为模板类,子类继承父类调用父类的方法常见错误
相信大家都对继承很清楚,那么如果是父类为模板类,派生出来的子类创建的对象,具体实现要如何调用父类的方法呢? 我们用代码尝试一下 #include<iostream> #include< ...
- Vue项目打包部署教程及常见错误-前端开发
目录 通用指南 打包 部署 1.静态或独立于后端部署前端应用时 2.Vue CLI 处理静态资源并和后端框架一起作为部署的一部分时 常见错误 一.publicPath引起的错误 二.在 history ...
- struts2对action的指定方法进行校验
2019独角兽企业重金招聘Python工程师标准>>> 在strust2中,我们可以实现对action的所有方法进行校验或者对action的指定方法进行校验. 一.对于输入校验str ...
- struts2开发action 的三种方法以及通配符、路径匹配原则、常量
struts2开发action 的三种方法 1.继承ActionSupport public class UserAction extends ActionSupport {// Action中业务处 ...
- MINIGUI常见错误集及解决方法
MINIGUI常见错误集及解决方法 个人前言:其中错误1到16是直接转载的一篇博客,在移植MiniGUI过程中碰到的问题远远不止这些,我只是拿这16个先开个头,以后会将我自己在移植MiniGUI的过程 ...
- centos linux 系统日常管理4 scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法 第十七节课...
centos linux 系统日常管理4 scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法 第十七节课 rsync可以增量同步,scp不行 ...
- WCF项目中出现常见错误的解决方法:基础连接已经关闭: 连接被意外关闭
原文:WCF项目中出现常见错误的解决方法:基础连接已经关闭: 连接被意外关闭 在我们开发WCF项目的时候,常常会碰到一些莫名其妙的错误,有时候如果根据它的错误提示信息,一般很难定位到具体的问题所在,而 ...
- Elasticsearch常见错误及解决方法
Elasticsearch常见错误及解决方法: 1.启动时候报错:Caused by: java.net.BindException: Cannot assign requested address ...
- SSL证书七大常见错误及解决方法
无论经验多么丰富,在购买或是安装SSL证书的过程中我们总会遇到这样或那样的错误.那么SSL证书安装有哪些常见错误呢?出现这些错误的原因以及解决方法是什么呢?小编为您总结了SSL证书七大常见错误及解决方 ...
最新文章
- iOS 仿看了吗应用、指南针测网速等常用工具、自定义弹出视图框架、图片裁剪、内容扩展等源码...
- [云炬python3玩转机器学习] 5-7,8 多元线性回归正规解及其实现
- 递归函数里面又有2个调用自身的递归函数里面参数变化总结
- 三问Spring事务:解决什么问题?如何解决?存在什么问题?
- Android下的数据储存方式(三)
- 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_2 响应之返回值是String类型...
- mysql 查询每个班级的前三名
- r语言 转录本结构及丰度_技术贴 | R语言:envfit环境因子和菌群回归分析
- 玉品游戏java_整蛊游戏N合一(玉品)
- itunes下载管理appstore老版本app
- Java程序员拼多多3轮面试,这些面试题你能掌握多少?
- 【一些笔记】TensorFlow笔记
- 用setTimeout来实现setInterval
- Linux如何安装BeyondCompare
- lcd屏和amoled屏哪个护眼呢 lcd屏和amoled屏哪个更耗电
- CSS【Text(文本)+Fonts(字体)】
- HTML5新标签语义及用法
- 深入分析netty(一)BootStrap与ServerBootStrap
- 高级实训任务二U-Net图像分割实验报告
- 2021上海交大附中高考成绩查询,2021年上海高中排名
热门文章
- 【实习之T100开发】Genero FGL (TIPTOP4GL) 学习笔记(2)
- 【小型JavaFx项目】文字小冒险游戏
- 2021总结-》2022年
- 数学分析笔记—python基础语法
- 自带python库的环境软件_pyenv虚拟环境管理python多版本和软件库
- python递归(一分钟读懂)
- 标准h5的定位_不但亲民还安全 红旗H5车门/防撞梁拆解
- 合肥工贸高级技工学校计算机系,合肥工贸高级技工学校
- win7 oracle数据库删除用户名,图文帮你win7系统删除Oracle数据库中的用户的具体方法...
- 人脸关键点:TCNN-Tweaked Convolutional Neural Networks