【问题标题】:I have trouble with a4j:commandButton and a reredering我在使用 a4j:commandButton 和重新排序时遇到问题
【发布时间】:2010-04-26 14:02:53
【问题描述】:

下面的代码显示了在我的应用程序中失败的事情。 这是一个快速添加信息的表格,填写表格并提交它,将新条目添加到数据库中并同步我的数据库。这一切都是用 ajax 完成的。第一个表单提交正确发生,但第二个表单无法运行所需的 ActionListener。第二种形式虽然发布到服务器,但未调用 saveAction。正如您将看到的,我是这项技术的真正初学者......如果有人看到问题,那将非常有帮助!

<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

【问题讨论】:

  • 我通过将 simToogglePanel 封装到 a4j:outputPanel 中解决了部分重新渲染问题。现在第二个 ajax 请求正常工作,但表单没有刷新...... Grrr ! :)

标签: java jsf richfaces


【解决方案1】:
  1. 我建议将&lt;a4j:form&gt; 作为最外层的元素
  2. immediate="true" 放在commandButton 上以绕过验证
  3. 不要 reRender 整个表单 - 在里面添加 &lt;h:panelGroup&gt;,然后重新渲染它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多