クイック保存と実行という 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>