【问题标题】:ReRendering a JSF Component重新渲染 JSF 组件
【发布时间】:2011-02-06 17:31:14
【问题描述】:

我可以在运行 valuechangelistener 方法时重新渲染 jsf ui 组件吗? 我问的原因是我的 valuechangelistener 方法更改了支持 bean 中输入框的值,但它们似乎没有被重新渲染。 最终会发生的是,打印在屏幕上的值被保存到支持 bean,覆盖通过 valuechangelistener 方法加载的值。

以下不起作用:

<h:inputText id="inputbox_id" value="#{name}"/>
<h:selectOneMenu valueChangeListener="#{myBean.changeCountryMenu}">
  <a4j:support event="onchange" rerender="inputbox_id" action="#{bean.test}>
</h:selectOneMenu>

请注意 bean.test() 永远不会运行。 (更新:确实如此,我之前有一个 renderResponse() 跳过它。但这些值仍然不会重新渲染) 所以我想到的解决方案是从valueChangeListener重新渲染输入框。 如果有其他更好的解决方案,我会很高兴听到...

谢谢! 本。

【问题讨论】:

  • 这不是问题的答案...问题是“我可以从支持 bean 代码重新渲染 JSF 组件吗?”而不是“我可以从 jsf 重新渲染 JSF 组件吗?”
  • 我猜你所说的“this”指的是我的回答。它没有回答标题,但它回答了问题中描述的问题

标签: jsf richfaces


【解决方案1】:

属性名称为reRender(第二次大写R)。也许您必须添加immediate="true"?

另外,请检查this article

【讨论】:

  • 谢谢。我已经阅读了 BalusC 关于 jsf 生命周期的文章,并意识到我的问题需要更好地理解 JSF 生命周期。 (balusc.blogspot.com/2006/09/debug-jsf-lifecycle.html)
  • 那么我至少会在我的答案中添加链接,以便有理由将其标记为已接受。
  • @downvoters - 问题的标题与提出的问题不对应不是我的错。我解决了这个人的问题;)
猜你喜欢
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-12
  • 2019-06-01
  • 2013-05-07
  • 2020-02-13
  • 1970-01-01
相关资源
最近更新 更多