标签:nta text contex package with png and 分代 type
1、问题描述
在struts.xml中配置用通配符方式调用action中的add()方法,访问 http://localhost:8080/Struts2Demo/helloworld_add.action时,出现了这个熟悉的错误:
Type Status Report
Message There is no Action mapped for namespace [/] and action name [helloworld_add] associated with context path [/Struts2Demo].
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
2、相关代码
struts.xml中部分相关代码
<package name="default" namespace="/" extends="struts-default">
<action name="helloworld_*" method="{1}" class="com.icheny.action.HelloWorldAction">
<result>/result.jsp</result>
<result name="add">/{1}.jsp</result>
<result name="update">/{1}.jsp</result>
</action>
</package>
HelloWorldAction.java中部分相关代码
public String add()
{
return "add";
}
public String update()
{
return "update";
}
3、原因
由于struts2 2.5版本的安全度提高了一个台阶,通配符禁止使用,所有不安全的访问都必须要在struts.xml中声明允许。我用的是2.5.16版本的struts,因此出现了这个错误。
4、解决方案
在package中添加属性:strict-method-invocation="false"
修改之后的struts.xml中的package部分代码为:
<package name="default" namespace="/" extends="struts-default" strict-method-invocation="false"> <action name="helloworld_*" method="{1}" class="com.icheny.action.HelloWorldAction"> <result>/result.jsp</result> <result name="add">/{1}.jsp</result> <result name="update">/{1}.jsp</result> </action> </package>
再次访问http://localhost:8080/Struts2Demo/helloworld_add.action,正常跳转:
struts2 2.5.16 通配符方式调用action中的方法报404
标签:nta text contex package with png and 分代 type
原文地址:https://www.cnblogs.com/iCheny/p/10963050.html