2017-02-22 82 views
0

我想作一个小的HTML页面,在这里你可以选择你想在你的计算中的一个复选框,该复选框下使用的运营商有具有上述选择运营商作为一个下拉列表内容。每次检查/取消选中某个操作时,下拉列表的可选内容都应该更改。我想用一个ValueChangeListener做这个,但我不知道如何实现这项工作的值更改侦听器。JSF SelectManyCheckbox/selectOneMenu用于例如

这里是我的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> 

这里是我的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) { 

    } 
} 

可能有人给我价值的解决方案,或者至少一个代码段改变监听器?我的主要问题是,我不知道如何告诉值变化监听器,它应该当他们在复选框被选中上面所选择的运营商添加到列表中。

回答

0

只需设置selectOneMenu属性value#{selectManyCheckboxBean.list}即可。这就是你的检查值。

+0

谢谢你,但我想用一个值变化监听器,使这个。 –

+0

'F:selectItems'没有'valueChangeListener','H:selectManyCheckbox'不...只需添加'#{selectManyCheckboxBean.operatorValueChange}'值'valueChangeListener'。 – peterremec