0

クイック保存と実行という 2 つの ajaxy ボタンがある jsp ページがあります。どちらのボタンも、基本的に次のことを行う JavaScript メソッドを呼び出します。

function submitForm(url) {
    document.<formname>.action = url;
    // call method that makes ajax call via YAHOO.util.Connect.asyncRequest
    submitAjaxRequest(document.<formname>); 
}

次に、ボタンがreturn false;そうするので、ページは移動しません。

問題: [クイック保存] をクリックすると、すべてが正常に機能します。ただし、「実行」をクリックすると、送信されたフォーム データに「: クイック保存」が含まれるため、Tomcat は「パラメーター: 無効なチャンクが無視されました」という警告をスローします。

これを逆に試してみると (つまり、[実行] をクリックしてから [クイック保存] をクリック)、そのような問題は見られません。ボタン ラベルがフォーム データに追加される理由は何ですか? ゆいの問題?ストラットの問題?

アクションのストラット定義は次のとおりです。

    <action path="/edit" type="com.llc.MyActionClass" parameter="edit"
            name="formName" validate="false" scope="request">
        <set-property property="permission" value="ModifyData"/>
        <forward name="success"         path="def.tile.edit" />
        <forward name="error"           path="/list.do" />
    </action>

    <action path="/save" type="com.llc.MyActionClass" parameter="save"
            name="formName" validate="true" scope="request"  input="/edit.do?validation_error=true">
        <set-property property="cancellable" value="true"/>
        <set-property property="permission" value="ModifyData"/>
        <forward name="success"         path="/list.do" redirect="false"/>
        <forward name="quicksave"       path="/edit.do" redirect="false"/>
        <forward name="cancel"          path="/list.do" redirect="true"/>
        <forward name="error"           path="/edit.do" />
    </action>

    <action path="/run" type="com.llc.MyActionClass" parameter="find"
            name="formName" validate="true" scope="request"  input="/edit.do?validation_error=true">
        <set-property property="permission" value="ModifyData"/>
        <forward name="success" path="def.tile.result" redirect="true"/>
        <forward name="error"   path="/edit.do" />
    </action>
4

1 に答える 1

0

原因は次のとおりです。

<input type="submit"/>

type 属性を「button」に変更すると、ボタン ラベルがフォーム データに追加されませんでした。

于 2013-02-22T19:56:02.550 に答える