2014-04-30 19 views

Odpowiedz

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

1. Uwaga te trzy ajax połączeń. Pierwszy to standardowy JSF ajax należący do java.sun.com/jsf/core, który używa atrybutu renders do aktualizacji wymaganych komponentów w DOM.

render - Rozdzielona spacjami lista identyfikatorów dla komponentów, które będą aktualizowane po żądaniu Ajax. (tylko przestrzenie są ważne)


2. Drugi należy do RichFaces 3, należy zauważyć różnicę w atrybucie event

reRender - atrybut definiuje identyfikator (y) JSF komponenty, które powinny zostać ponownie wysłane po żądaniu Ajax. ... Możliwe jest również użycie wyrażenia JSF EL jako wartości atrybutu reRender. Może to być właściwość typu Set, Collection, Array lub simple String. (przecinki są ważne, nie wiedząc o przestrzeniach)

  • w RichFaces 4 atrybut reRender została zmieniona na render

3. Trzecia należy do PrimeFaces i wykorzystuje Atrybut update (moim zdaniem najbardziej znacząca nazwa tych trzech)

upda te - Komponent (y) do aktualizacji za pomocą ajax. (spacje i przecinki są ważne)


Więc jak widać to w zasadzie to samo zadanie z niewielkimi różnicami w sposobie korzystania z nich. Nie, nie możesz ich mieszać. Użyj render z jsf/core, reRender z ajax4Jsf w Richfaces 3 i update z komponentami PrimeFaces. Zwróć uwagę, że w RichFaces 4 zmieniono nazwę atrybutu reRender na render.

Co dotyczy zdarzeń - PrimeFaces i jsf/core używają rzeczywistych nazw zdarzeń DOM (nieprefixowane), RichFaces z drugiej strony wykorzystuje zdarzenia z prefiksem, np. onchange w przeciwieństwie do change. Zauważ, że nowy atrybut RichFaces 4 (<a4j:ajax> zastąpiony <a4j:support>) <a4j:ajax> ma taką samą wartość, jak event i działa tak samo, jak 'event.