2016-07-17 64 views
1

我想要一個帶有h:selectOneRadio和Java ArrayList信息的JSF菜單。 這是我的代碼:我怎樣才能創建h:selectOneRadio與java列表(JSF)的選項?

XHTML:

<h:selectOneRadio value="#{bean.element}"> 
    <ui:repeat value = "#{bean.items}" var = "i"> 
     <f:selectItem itemValue="#{bean.elements[i]}" itemLabel="#{bean.elements[i]}" /> 
    </ui:repeat> 
</h:selectOneRadio> 

豆:

package bean.controlador; 

import java.io.IOException; 
import java.util.ArrayList; 
import javax.faces.bean.ManagedBean; 
import javax.faces.bean.SessionScoped; 
import javax.faces.context.FacesContext; 

@ManagedBean 
@SessionScoped 
public class Bean { 

    private String element; 
    private ArrayList<Integer> items; 
    private ArrayList<String> elements; 

    public Bean() { 
     element = "hello"; 
     elements = new ArrayList<String>(); 
     elements.add("world"); 
     elements.add("hello"); 
     elements.add("thanks"); 
     items = new ArrayList<Integer>(); 
     items.add(1); 
     items.add(2); 
     items.add(3); 
    } 


    public void load() throws IOException { 
     FacesContext.getCurrentInstance().getExternalContext().redirect("link.xhtml"); 
    } 

    public void listenerFuncion() { 
     System.out.println("Listener"); 
    } 

    public String getElement() { 
     return element; 
    } 

    public void setElement(String element) { 
     this.element = element; 
    } 

    public ArrayList<Integer> getItems() { 
     return items; 
    } 

    public void setItems(ArrayList<Integer> items) { 
     this.items = items; 
    } 

    public ArrayList<String> getElements() { 
     return elements; 
    } 

    public void setElements(ArrayList<String> elements) { 
     this.elements = elements; 
    } 
} 

的XHTML是空的,我沒有看到任何項目。我想加載所有列表並點擊任何selectItem,element變量將更改其值。 謝謝!

回答

2

而不是使用ui:repeatf:selectItem,使用f:selectItems,它可以採取項目列表。

這裏是您的情況爲例:

<h:selectOneRadio value="#{bean.element}"> 
    <f:selectItems value="#{bean.items}" var="i" itemValue="#{bean.elements[i]}" itemLabel="#{bean.elements[i]}" /> 
</h:selectOneRadio> 

我不知道我完全理解你所使用的變量的內容,但是這也可以更好地爲您:

<h:selectOneRadio value="#{bean.element}"> 
    <f:selectItems value="#{bean.elements}" var="i" itemValue="#{i}" itemLabel="#{i}" /> 
</h:selectOneRadio> 
+0

完美!美麗!!謝謝! –

+0

很高興能幫到你! :)請接受我的答案,如果它爲你工作。 –

+0

是的,在一分鐘內xD –