当我提交时,我会看到一个简单的表格,我看到了2个请求。
<h:form id="form1">
<a4j:commandButton value="Send" id="cm1" onclick="sendData(193)"/>
<a4j:jsFunction name="sendData">
<a4j:param name="param1" assignTo="#{outageManagementAction.deleteEngineId}" />
</a4j:jsFunction>
</h:form>
JSF生成的代码遵循......
<form id="form1" name="form1" method="post" action="/moutagev1/faces/pages/xOutageEdit.xhtml" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="form1" value="form1" />
<input id="form1:cm1" name="form1:cm1" onclick="jsf.util.chain(this,event,"sendData(193)","RichFaces.ajax(\"form1:cm1\",event,{\"incId\":\"1\"} )");return false;" value="Send" type="submit" /><span id="form1:j_idt257" style="display: none;"><script type="text/javascript">sendData=function(param1){RichFaces.ajax("form1:j_idt257",null,{"parameters":{"param1":param1} ,"incId":"1"} )};</script></span><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="8425501786648002013:2772799535475824519" autocomplete="off" />
</form>
任何想法为什么会这样......
答案 0 :(得分:0)
好吧,一个请求是<h:form>
的标准帖子,第二个请求是自定义<a4j:jsFunction>
,它在点击发生时与提交链接在一起。
一种解决方案是通过更改按钮的类型来抑制标准提交,如下所示:<a4j:commandButton type="button" />
。
另一种选择是根本不使用<a4j:jsFunction>
。而是使用它:
<f:setPropertyActionListener target="#{outageManagementAction.deleteEngineId}" value="193" />