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

Sha*_*ndu 6 jsf jsf-2

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

Kub*_*uba 9

<f:ajax event="change" render=":moons :suns" />    
<a4j:support event="onchange" reRender=":moons, :suns" />   
<p:ajax event="change" update=":moons, :suns" />
Run Code Online (Sandbox Code Playgroud)

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

render - 在Ajax请求之后将更新的组件的以空格分隔的ID列表.(只有空格有效)


2.第二个属于RichFaces 3,请注意event属性的差异

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

  • 在RichFaces 4中,该reRender属性已重命名为render

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

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>event属性的工作方式相同<f:ajax>event.