SSH框架Struts2.5之后遇到的坑 struts.xml不用通配符没问题,已改成通配符就报异常

Posted bkywanly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSH框架Struts2.5之后遇到的坑 struts.xml不用通配符没问题,已改成通配符就报异常相关的知识,希望对你有一定的参考价值。


本来也就是一个简单的登录的问题,然后我在这突然想用统配符了。然后......

用没用通配符的两个anction如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="default" extends="struts-default" namespace="/">
<!--
<action name="Users_login" class="action.UsersAction" method="login">
<result name="login_success">/users/Users_login_success.jsp</result>
<result name="login_failure">/users/Users_login.jsp</result>
</action>
-->
</package>
<package name="users" namespace="/users" extends="default">
<action name="*_*" class="action.1Action" method="2">
<result name="login_success">/users/Users_login_success.jsp</result>
<result name="login_failure">/users/Users_login.jsp</result>
</action>
</package>
</struts>
第一个action完美运行,第二个异常是这样的
There is no Action mapped for namespace [/users] and action name [Users_login] associated with context path [/sh_students].


因为struts是2.5版本以后,默认使用strict-method-invocation。。。

所以只需要加一句

<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
改成
<package strict-method-invocation="false" name="default" namespace="/" extends="struts-default">


这里顺便提一提以前遇到的一种情况,constant标签我当初为了改后缀使用了

<constant name="struts.action.extension" value="html"></constant>
再一次偶然的情况下,把它注释掉,发现又能使用通配符了。
————————————————
版权声明:本文为CSDN博主「you_yyyy」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/you_yyyy/article/details/78047092

以上是关于SSH框架Struts2.5之后遇到的坑 struts.xml不用通配符没问题,已改成通配符就报异常的主要内容,如果未能解决你的问题,请参考以下文章

基于struts2.5.2+hibernate5.2.2+spring4.3.2搭建SSH框架

那些年构建SSH所遇到的坑

Git 遇到的坑

Mac 修改 PermitRootLogin 权限遇到的坑

Struts2中遇到的问题

iOS 调用系统拍照遇到的坑