【问题标题】:struts2 action mapping incorrectstruts2 动作映射不正确
【发布时间】:2014-01-05 07:46:33
【问题描述】:

我有 2 个 actionClass,一个在启动时调用。我正在尝试通过按下按钮(暂时)调用一个动作,该动作会转到另一个页面并在控制台中打印一条消息,说明该动作成功,但是当我点击它时它不会被调用。我做错了吗?

struts.xml

<struts>
    <package name="default" extends="struts-default">
        <action name="*" class="actionPackage.ActionClass1">
            <result name="homepage">/default.jsp</result>
            <result name="myNextPage">/nextPage.jsp</result>
        </action>
    </package>
</struts>

actionClass1

public String execute(){
    System.out.println("the web application is working properly!");
    return "homepage";
}

动作类2

public String execute(){
    System.out.println("the button works!");
    return "myNextPage";
}

default.jsp

function strutsTestFunc(){document.getElementById("querySubmitter").submit()}

...

<form name="searchForm" method="post" action="actionPackage.ActionClass2" id="querySubmiter">

...

<input id="filterSubmit" type="submit" value="Search" onclick="strutsTestFunc()">

当我单击按钮时,它会转到“/actionPackage.ActionClass2”并给我一个 404 错误。我在这里做错了吗?

【问题讨论】:

标签: java html jsp model-view-controller struts2


【解决方案1】:

你的映射是错误的。还要避免使用* 通配符来映射所有操作,实际上绕过了框架机制。

<struts>
    <package name="default" extends="struts-default">
        <action name="action1" class="actionPackage.ActionClass1">
            <result name="homepage">/default.jsp</result>
        </action>
        <action name="action2" class="actionPackage.ActionClass2">
            <result name="myNextPage">/nextPage.jsp</result>
        </action>
    </package>
</struts>

在 JSP 中,总是指向动作的映射,而不是动作类本身:

<form action = "action2" 
        name = "searchForm" 
      method = "post"  
          id = "querySubmiter" >

成功后,开始使用SUCCESS等默认结果,并使用&lt;s:submit /&gt; struts标签提交,不需要javascript。

【讨论】:

    猜你喜欢
    • 2020-10-14
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    相关资源
    最近更新 更多