【问题标题】:Generating jsf checkboxs生成 jsf 复选框
【发布时间】:2012-02-11 20:17:18
【问题描述】:

我有一个多选列表框,根据用户选择的元素数量,我必须显示相同数量的复选框。我正在使用 jsf 和 primefaces /spring webflow。我怎么能这样做?有什么例子吗? 我必须制作一个复选框,允许一键检查所有生成的复选框。

【问题讨论】:

    标签: spring jsf jsf-2 primefaces spring-webflow-2


    【解决方案1】:

    我有一个多选列表框

    因此,<h:selectManyListbox> 具有固定的 <f:selectItems> 值。

    <h:selectManyListbox id="listbox" value="#{bean.selectedListboxItems}">
        <f:selectItems value="#{bean.availableListboxItems}" />
    </h:selectManyListbox>
    

    类似的东西:

    private List<String> availableListboxItems;
    private List<String> selectedListboxItems;
    
    @PostConstruct
    public void init() {
        availableListboxItems = new ArrayList<String>();
        availableListboxItems.add("menu item 1");
        availableListboxItems.add("menu item 2");
        availableListboxItems.add("menu item 3");
    }
    

    根据用户选择的元素数量,我必须显示相同数量的复选框

    因此,只需根据&lt;h:selectManyListbox&gt; 的值预填充&lt;h:selectManyCheckbox&gt;&lt;f:selectItems&gt;

    <h:commandButton value="Generate checkboxes">
        <f:ajax execute="listbox" listener="#{bean.generateCheckboxes}" render="checkboxes" />
    </h:commandButton>
    <h:selectManyCheckbox id="checkboxes" value="#{bean.selectedCheckboxItems}">
        <f:selectItems value="#{bean.availableCheckboxItems}" />
    </h:selectManyCheckbox>
    

    类似的东西

    private List<String> availableCheckboxItems;
    private List<String> selectedCheckboxItems;
    
    public void generateCheckboxes() {
        availableCheckboxItems = new ArrayList<String>();
    
        for (int i = 1; i <= selectedListboxItems.size(); i++) {
            availableCheckboxItems.add("checkbox item " + i);
        }
    }
    

    我正在使用 jsf 和 primefaces /spring webflow。我怎么能这样做?有什么例子吗?

    我相信上面这些琐碎的例子就足够了。对于 PrimeFaces,只需将 &lt;h:xxx&gt; 替换为 &lt;p:xxx&gt;。但是我不知道 Spring Webflow 是如何在其中发挥作用的,因为我从未使用过它。


    我必须制作一个复选框,允许一键检查所有生成的复选框。

    这是留给你的练习。提示:确保availableCheckboxItems 包含所需的值,具体取决于&lt;h:selectBooleanCheckbox&gt; 的当前值,该值应表示“切换所选项目”。

    【讨论】:

    • 很好的答案 :) 但是我如何在创建时检查一些复选框?其次,您将所有字符串都放在那里,但是当我使用我的类的对象(例如汽车)并且我想在列表框中选择后将对象存储在列表中时该怎么办。我的意思是我的对象应该有 toString 方法或者 jsf 如何管理它?
    • 1) 只需预填selectedCheckboxItems。 2)这只是一个基本的例子。在您的情况下,只需实现 Converter
    • 谈到我问题中的最后一件事,我是否应该在选中正确的复选框后设置 selectedCheckboxItems 中的所有元素并重新渲染
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 2012-05-03
    • 1970-01-01
    相关资源
    最近更新 更多