【问题标题】:multiple struts actions on single form not working [duplicate]单个表单上的多个struts动作不起作用[重复]
【发布时间】:2014-09-18 07:59:18
【问题描述】:

我试图在提交按钮上调用一个操作,但它不起作用。

index.jsp

<s:form method="post" enctype="multipart/form-data">
    <s:file label="Upload Matrix.csv file:" name="file"></s:file>
    <s:submit value="Upload" action="uploadFile" cssClass="btn btn-info"></s:submit>
    <s:submit value="Update" action="fileData" cssClass="btn btn-primary" />
    <s:submit value="Show" action="sessionMatrix" cssClass="btn btn-primary"/>
</s:form>

struts.xml

<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <constant name="struts.devMode" value="true" />
    <constant name="struts.ui.theme" value="bootstrap" />

    <package name="default" namespace="/" extends="json-default,struts-default">

        <!-- cities populate -->
        <action name="ajaxAction" class="com.action.PopulateCities">
            <result type="json">/sessionMatrix.jsp</result>
        </action>

        <!-- JTable populate -->
        <action name="*Action" class="com.action.SessionRecordsAction"
            method="{1}">
            <result type="json">/sessionMatrix.jsp</result>
        </action>
        <action name="getJSONResult" class="com.action.SessionRecordsAction"
            method="list">
            <result type="json" />
        </action>

        <!-- to upload csvfile data into database -->
        <action name="fileData" class="com.util.UploadData">
            <result name="success">/sessionMatrix.jsp</result>
            <result name="error">/error.jsp</result>
        </action>

        <!-- to display data into table i.e ResultSet implementation -->
        <action name="sessionMatrix" class="com.action.SessMatrixAction">
            <result name="success">/exportSession.jsp</result>
            <result name="error">/error.jsp</result>
        </action>

        <!-- upload file -->
        <action name="uploadFile" class="com.action.FileUpload">
            <interceptor-ref name="defaultStack">
                <param name="fileUpload.maximumSize">10485760</param>
            </interceptor-ref>
            <result name="success">/dashboard.jsp</result>
            <result name="error">/error.jsp</result>
            <result name="input">/dashboard.jsp</result>
        </action>
    </package>
</struts>

我正在做的是调用每个动作类的执行方法,我什至通过在动作标记中提及方法属性以及&lt;s:submit&gt; 标记来尝试。

【问题讨论】:

标签: jsp struts2 struts struts-config


【解决方案1】:

从 Struts 2.3.15.3 开始,您需要显式启用操作:后缀为:

<constant name="struts.mapper.action.prefix.enabled" value="true"/>

您可能也有兴趣阅读有关call different actions from a form 的方法。

【讨论】:

    【解决方案2】:

    您错过了&lt;s:form&gt; 标记中的操作属性。 在代码中使用 action 属性作为

        <s:form method="post" enctype="multipart/form-data" action="actionName">
      ....
    </s:form>
    

    【讨论】:

    • action 属性不是必需的。
    猜你喜欢
    • 1970-01-01
    • 2015-10-08
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多