我有一个集合,该集合由<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/