jsf中render和reRender属性之间的区别

时间:2014-04-30 08:45:09

标签: jsf jsf-2

jSf中render和reRender属性的区别是什么。我们可以将reRender与JSf Core库一起使用,或者它只能与ajax4Jsf库一起使用。两者的功能是什么?。

1 个答案:

答案 0 :(得分:9)

<f:ajax event="change" render=":moons :suns" />    
<a4j:support event="onchange" reRender=":moons, :suns" />   
<p:ajax event="change" update=":moons, :suns" />

1。请注意这三个ajax调用。第一个是属于ajax的标准JSF java.sun.com/jsf/core,它使用renders属性来更新DOM中所需的组件。

呈现 - 在Ajax请求之后将更新的组件的以空格分隔的ID列表。(仅空格有效)


2。第二个属于RichFaces 3,请注意event属性

的差异

reRender - 属性,用于定义在Ajax请求后应重新呈现的JSF组件的ID。 ...也可以使用JSF EL表达式作为reRender属性的值。它可能是Set,Collection,Array或simple String类型的属性。(逗号有效,不确定空格)

    RichFaces 4中的
  • reRender属性已重命名为render

3. 第三个属于PrimeFaces并使用update属性(在我看来,这三个属性中最有意义的名称)

更新 - 要使用ajax更新的组件。(空格和逗号有效)


因此,您可以看到他们基本上做同样的工作,但在如何使用它们方面存在细微差别。不,你不能混合它们。将render与jsf / core一起使用,reRender与Richfaces 3中的ajax4Jsf一起使用,update与PrimeFaces组件一起使用。请注意,在RichFaces 4中,reRender属性已重命名为render

关注事件 - PrimeFaces和jsf / core使用实际的DOM事件名称(未加前缀),RichFaces另一方面使用前缀事件,例如。 onchange而不是change。请注意,新的RichFaces 4(<a4j:ajax>替换<a4j:support><a4j:ajax>的{​​{1}}属性与event&#39; s {相同{1}}。