我有一个集合,该集合由<h:dataTable>显示在我的.xhtml页面中。我想要实现一些目标:首先,我想通过<h:selectManyCheckbox>设置list.check值,第二步,我希望在当前会话结束之前保持选择的值不变。现在,它可以正确显示,但是当我选择某个值时,它不会在list.check属性中传输它。我正在使用JSF v.2.2。

JSF bean中的代码:

private List<AnswerDTO> answerListDto;
//getters and setters


.xhtml中的代码

<h:form>
    <h:dataTable value="#{main.answerListDto}" var="list">
        <h:column>
            <h:selectManyCheckbox value="#{list.check}">
                <f:selectItem itemValue="1" itemLabel="#{list.ansValue}" />
            </h:selectManyCheckbox>
        </h:column>
    </h:dataTable>
</h:form>


AnswerDTO班级:

public class AnswerDTO implements Serializable, DTO {

    private static final long serialVersionUID = 1L;

    private Integer     id;
    private Question    questId;
    private String      ansValue;
    private String      ansStatus;
    private String      check;

    //getters and setters
}

最佳答案

我必须说selectManyCheckbox的奇怪用法。具体的问题是selectManyCheckbox的值必须是一个数组。

我的意见是应使用selectBooleanCheckbox而不是selectManyCheckbox。您的check属性只能有两个值:一个空数组(如果未选中复选框)和长度为1且值等于ansValue的数组(如果选中了复选框)。

关于java - 我如何从<h:selectManyCheckbox>获取值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14870051/

10-11 18:15