我有一个 jsp 页面,上面有两个 ajaxy 按钮:快速保存和运行。两个按钮都调用一个 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抛出警告“参数:无效块被忽略”。
如果我反过来尝试(即单击运行,然后单击快速保存),我看不到任何此类问题。知道为什么要在表单数据中添加按钮标签吗?YUI 问题?支柱问题?
这是动作的struts定义:
<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>