2013-01-23 15 views
13

JSF'de yeni IIM yeni setPropertyActionListener vs attribute vs param arasındaki fark nedir? ? SetPropertyActionListener: setPropertyActionListener kullanmak olacaktır zaman ilerleme kaydedilmesiJSF Core Tag: setPropertyActionListener vs öznitelik vs param

+3

İlgili: http://balusc.blogspot.com/2006/06/communication-in-jsf.html EL 2.2'den bu yana argümanların bu etiketlere gerek olmadan doğrudan eylem yöntemlerine geçebileceğini unutmayın. – BalusC

cevap

28

1. f .thanks bu etiketi ile

, doğrudan, fasulye desteklemekte özelliğini ayarlayabilirsiniz. Örnek:

XHTML:

<h:commandButton action="page.xhtml" value="OK"> 
    <f:setPropertyActionListener target="#{myBean.name}" value="myname"/> 
</h:commandButton> 

arkalık fasulye:

@ManagedBean 
@SessionScoped 
public class MyBean{ 

    public String name; 

    public void setName(String name) { 
     this.name= name; 
    } 

} 

Bu myname değerine arkalık fasulye name özelliği ayarlayacaktır.

2. f: param:

Bu etiket basit setleri istek parametresi. Örnek:

xhtml:

FacesContext.getExternalContext().getRequestParameterMap().get("myparam") 

3. f: nitelik: Eğer geçebilir bu etiketi ile

<h:commandButton action="page.xhtml"> 
    <f:param name="myparam" value="myvalue" /> 
</h:commandButton> 

böylece yedekleme fasulye bu parametreyi alabilirsiniz özniteliği, bu özniteliği, alt öğelerinizin çalışma dinleyici yönteminden yakalayabilirsiniz.

xhtml: Eğer yedekleme fasulye özelliğini ayarlamak istediğinizde

public void doSomething(ActionEvent event){ 
    String myattr = (String)event.getComponent().getAttributes().get("myattribute"); 
} 

Sen f:setPropertyActionListener kullanmalıdır:

<h:commandButton action="page.xhtml" actionListener="#{myBean.doSomething}"> 
    <f:attribute name="myattribute" value="myvalue" /> 
</h:commandButton> 

böylece eylem dinleyici yönteminden bu niteliği alabilirsiniz. Yedekleme fasulyesine parametre iletmek istiyorsanız, f:param ve f:attribute'u düşünün. Ayrıca, f:param ile sadece String değerlerini geçebileceğinizi ve f:attribute ile nesneleri geçirebileceğinizi bilmek önemlidir.

İlgili konular