2013-01-23 27 views
13

Iam nuovo in JSF. Qual è la differenza tra setPropertyActionListener vs attributo vs param? ? Quando sarebbe utilizzare il setPropertyActionListener .thanks anticipoTag JSF Core: setPropertyActionListener vs attributo vs param

+3

Correlato: http://balusc.blogspot.com/2006/06/communication-in-jsf.html Si noti che dal momento dell'EL 2.2 è possibile passare argomenti direttamente nei metodi di azione senza la necessità di alcuno di questi tag. – BalusC

risposta

28

1. F: setPropertyActionListener:

Con questo tag, è possibile impostare direttamente proprietà in voi il backup di fagioli. Esempio:

xhtml:

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

backup fagiolo:

@ManagedBean 
@SessionScoped 
public class MyBean{ 

    public String name; 

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

} 

Questo imposterà name proprietà di fagiolo sostegno per valutare mionome.

2. f: param:

questo tag semplici imposta il parametro di richiesta. Esempio:

xhtml:

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

modo da poter ottenere questo parametro nel backing bean:

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

3. f: attribute:

Con questo tag è possibile passare attributo in modo che tu possa prendere quell'attributo dal metodo del listener di azioni del tuo backing bean.

xhtml:

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

modo da poter ottenere questo attributo dal metodo action listener:

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

si dovrebbe usare f:setPropertyActionListener ogni volta che si desidera impostare proprietà del backing bean. Se si desidera passare il parametro al bean di supporto, considerare f:param e f:attribute. Inoltre, è importante sapere che con f:param è sufficiente passare i valori String e con f:attribute è possibile passare oggetti.