2010-04-26 97 views
0

下面的代码显示了我的应用程序中失败的东西。 这是一个快速添加信息表单,填写表单并提交它添加一个新的条目到数据库并同步我的数据库。这一切都是用ajax完成的。第一个表单提交正确发生,但第二个表单无法运行所需的ActionListener。第二种形式是发布到服务器,但saveAction没有被调用。正如你所看到的,我是一个真正的初学者,拥有这些技术......如果有人看到了这个问题,这将是非常有益的!我遇到了a4j:commandButton和reredering问题

<rich:simpleTogglePanel id="quickaddActivitySimpleToogle" 
switchType="client" 
opened="false" 
label="#{lang.activityModule_quickAdd_panelTitle}"> 
<p><a4j:form id="quickAddForm"> 
<h:outputLabel for="activityNameInput" 
    value="#{lang.activity_name_dp}" /> 
<h:inputText id="activityNameInput" 
    value="#{activityController.quickActivityAdd.name}"> 
</h:inputText> 
<rich:spacer width="20px" /> 

<h:inputHidden id="activityInternalNameInput" 
    value="#{activityController.quickActivityAdd.internalName}" /> 
<rich:spacer width="20px" /> 
<a4j:commandButton id="activityQuickAddFormSubmitBtn" 
    reRender="activityListTable,quickAddForm" 
    actionListener="#{activityController.saveActivity}" 
    value="#{lang.saveBtn_header}" /> 
</a4j:form></p></rich:simpleTogglePanel> 

在此先感谢。

ollie314

+0

我解决我再rendreing与封闭simToogglePanel到A4J问题的一部分:outputPanel。现在第二个Ajax请求正常工作,但表单不刷新... Grrr! :) – ollie314 2010-04-26 14:13:56

回答

0
  1. 我建议把<a4j:form>作为最外层的元素
  2. immediate="true"commandButton绕过验证
  3. reRender整个表单 - 添加<h:panelGroup>里面,改为改写它。