0

我想制作一个小 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) {

    }
}

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

4

1 回答 1

0

只需将selectOneMenu属性设置value#{selectManyCheckboxBean.list}. 那就是您检查的值所在的位置。

于 2017-02-22T12:25:54.710 回答