struts2.xml 中使用*拦截所有action,统一处理问题

发布于 2021-12-01 08:59:56 字数 2010 浏览 813 评论 5

Struts2 的配置文件:
<?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>
    <constant name="struts.devMode" value="true" />
    <!--返回数据-->
    <package name="jsonPackage" extends="json-default">
        <action name="*_*" method="{1}" class="com.zsw.frame.action.{2}Action">
            <!--返回json数据-->
            <result name="jsonData" type="json">
                <param name="root">responseData</param>
            </result>
        </action>
    </package>
</struts>


这是action代码:
public class UserAction extends AbstractJsonAction{

    public String index1() {

        String json = sendJsonData(new RespData<User>().success());
        return json;
    }

    public String index() {
        String html = redirectHtml("html/error.jsp");
        System.out.println(html);
        return html;
    }

    public String uploads() {

        RespData<?> respData = new RespData<Object>();
        return sendJsonData(respData.success());
    }
}


问题:

这种方式只能访问 User_index.action中的index方法, 不能访问UserAction中的其他方法,如访问:User_index1.action,则报如下错:


Struts Problem Report

Struts has detected an unhandled exception:

Messages:
  • There is no Action mapped for namespace [/] and action name [User_index1] associated with context path [/studyFrame].
  • 如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(5

    北笙凉宸 2021-12-04 01:44:12

    谢谢你们啊,,还是英文不够好,,不然看文档就不会有这些问题了

    贱贱哒 2021-12-03 20:31:17

    引用来自“zhsw”的评论

    我晚上测试了一下,2.3的版本这样写是可以的,原来2.5版本要在package上添加

    strict-method-invocation="false"
    累赘 2021-12-03 05:36:19

    我晚上测试了一下,2.3的版本这样写是可以的,原来2.5版本要在package上添加

    strict-method-invocation="false"
    后知后觉 2021-12-03 00:35:39

    即使把,action中的1,2对换也貌似访问不了,此处是我写错了,因为改了很多次了。直接写死配置是能访问各个方法的。

    瀞厅☆埖开 2021-12-01 12:50:10

    第一个“*”对应method方法,你确定你访问的对??

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文