2017-02-22 2 views
0

Ich möchte eine kleine HTML-Seite erstellen, in der Sie die Operatoren auswählen können, die Sie in Ihrer Berechnung verwenden möchten, und unter dem Kontrollkästchen gibt es eine Dropdown-Liste mit den oben ausgewählten Operatoren Inhalt. Jedes Mal, wenn Sie eine Operation aktivieren/deaktivieren, sollten sich die auswählbaren Inhalte der Dropdown-Liste ändern. Ich möchte dies mit einem ValueChangeListener machen, aber ich habe keine Ahnung, wie man einen Wertänderungshörer in dieser Übung implementiert.JSF SelectManyCheckbox/SelectOneMenu Beispiel

Hier ist meine index.html

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://xmlns.jcp.org/jsf/html" 
    xmlns:f="http://xmlns.jcp.org/jsf/core"> 
<h:head> 
    <title>Facelet Title</title> 
</h:head> 
<h:body> 
    <h:form> 
     <h:selectManyCheckbox onchange = "submit()"> 
      <f:selectItems value = "#{selectManyCheckboxBean.list}" valueChangeListener = ""/> 
     </h:selectManyCheckbox> 

     <h:outputText id = "outputText" value = ""/> 
     <h:selectOneMenu value = ""> 
      <f:selectItems value = ""/> 
     </h:selectOneMenu> 
    </h:form> 
</h:body> 

Und hier ist mein SelectManyCheckboxBean.java

@ManagedBean 
@SessionScoped 
public class SelectManyCheckboxBean { 
    private List<SelectItem> list; 

    public SelectManyCheckboxBean() { 
     list = new ArrayList<>(); 

     list.add(new SelectItem('+')); 
     list.add(new SelectItem('-')); 
     list.add(new SelectItem('*')); 
     list.add(new SelectItem('/')); 
    } 

    public List<SelectItem> getList() { 
     return list; 
    } 

    public void operatorValueChange (ValueChangeEvent event) { 

    } 
} 

Könnte mir jemand eine Lösung geben, oder zumindest ein Code-Snippet für den Wert Hörer wechseln? Mein Hauptproblem besteht darin, dass ich nicht weiß, wie ich dem Wertänderungs-Listener mitteilen kann, dass er die ausgewählten Operatoren zu einer Liste hinzufügen soll, wenn sie in den obigen Kontrollkästchen aktiviert wurden.

Antwort

0

Setzen Sie einfach ein selectOneMenu Attribut value auf #{selectManyCheckboxBean.list}. Dort sind Ihre überprüften Werte.

+0

Vielen Dank, aber ich möchte dies mit einem Wert ändern Listener machen. –

+0

'f: selectItems' hat nicht' valueChangeListener', 'h: selectManyCheckbox' tut ... Fügen Sie einfach' # {selectManyCheckboxBean.operatorValueChange} 'value zu' valueChangeListener' hinzu. – peterremec