JSF SelectManyCheckbox / SelectOneMenu示例

时间:2017-02-22 12:14:54

标签: java html jsf selectonemenu selectmanycheckbox

我想创建一个小的html页面,您可以在复选框中选择要在计算中使用的运算符,并在复选框下面有一个下拉列表,其中包含上面选择的运算符作为内容。每次检查/取消选中操作时,下拉列表的可选内容都应该更改。我想用ValueChangeListener来实现它,但我不知道如何在本练习中实现值更改侦听器。

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

    }
}

有人可以给我一个解决方案或至少为值更改侦听器提供代码片段吗?我的主要问题是我不知道如何告诉值更改侦听器它应该在上面的复选框中选中它们时将它们添加到列表中。

1 个答案:

答案 0 :(得分:0)

只需将selectOneMenu属性value设置为#{selectManyCheckboxBean.list}即可。这是您选中的值的位置。