【问题标题】:jsf ajax partial renderingjsf ajax 部分渲染
【发布时间】:2012-01-17 22:24:40
【问题描述】:

我正在使用 JSF 2.0.4 表单下有一个组件,其中有一个 f:ajax

<h:form id="formid"....>
......
<h:outputText id="textid" ........../>
.........
<h:commandLink id=".." value="...">
   <f:ajax event="click" render="formid" execute="input" listener="#{bean.action}"/>
<h:commandLink/>
<h:form/>

render 属性是否有任何表达式将 textid 从 formid 中排除,以便在触发 ajax 后呈现表单而不是 outputText?

【问题讨论】:

  • 您希望“渲染”作为属性。它需要一个布尔值 true/false,你可以绑定它。
  • 为 outputText 渲染?我不希望仅在触发 ajax 后才呈现 outputText。
  • 您的问题有点不清楚 - 您的意思是“渲染”为“显示”或“重新渲染”为更新新内容?请提供更多详细信息。

标签: ajax jsf jsf-2


【解决方案1】:

我不知道有一种方法可以指定“表单中除此之外的所有内容”,但不要使用表单 id 作为渲染关键字,您可以只列出要渲染的表单下的子 ID,而不是包括 outputText 的 id,例如

<f:ajax event="click" render="id1 id2 id3" execute="input" listener="#{bean.action"/>

我不确定你为什么想要这个 - 如果你不想在 ajax 事件触发时更新输出文本,我想你所要做的就是不在监听器中更新它?

【讨论】:

  • 谢谢你这个作品,但它给了我一个 id 的例外,它无法找到一个 id。我会更新以获取更多信息
  • 我想包含 id1 但在 DOM 中找不到这个 id
  • 元素与您要呈现的表单是否在同一表单中?如果没有,您必须指定父容器/表单的 ID。我发现 this 是关于渲染和 id 的一个很好的指南。
  • 是的 格式相同
猜你喜欢
  • 2011-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-29
  • 1970-01-01
相关资源
最近更新 更多