struts.xml不用通配符没问题,已改成通配符就报异常

来源:互联网 发布:淘宝客服表情包下载 编辑:程序博客网 时间:2024/05/21 18:40

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

用没用通配符的两个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.{1}Action" 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>
再一次偶然的情况下,把它注释掉,发现又能使用通配符了。

好吧,这个也该让我长点记性,不懂的标签多查文档



原创粉丝点击