【发布时间】:2014-12-01 04:55:40
【问题描述】:
原来是这样的。
我的手机:
@Named("MyMb")
@SessionScoped
public class MySuperCoolMb implements Serializable {
//Tons of attributes
private List<ListModelOne> lmo = new ArrayList();
//Tons of methods
}
外部模型:
public class ListModelOne {
private coolObject object;
private List<ReadWrite> permissions;
//init()
//setters-getters
}
Inner Model,这是需要直接绑定到屏幕上的selectItems的Model
public class ReadWrite {
private String accessItem;
private boolean read = false;
private boolean write = false;
//Somewhere in my code i change this from true/false depending
//what i need and they do change in title in xhtml.
//setters-getters
}
还有我的 xhtml:
<h3>Cool Title</h3>
<p:accordionPanel value="#{MyMb.lmo}" var="modelOne">
<p:tab title="#{modelOne.coolObject.ObjectName}">
<h3>Cool Inner Title</h3>
<ui:repeat value="#{modelOne.permissions}" var="readWrite">
<h:panelGrid>
<h:outputText value="#{readWrite.accessItem}"/>
<!-- selectManyCheckbox has no value attribute because i don't need/have a list/collection to bind it -->
<p:selectManyCheckbox>
<f:selectItem itemLabel="Read" itemValue="#{readWrite.read}" title="This is set to #{readWrite.read}"/>
<f:selectItem itemLabel="Write" itemValue="#{readWrite.write}" title="This is set to #{readWrite.write}"/>
</p:selectManyCheckbox>
</h:panelGrid>
</ui:repeat>
</p:tab>
</p:accordionPanel>
一切正常,但复选框(selectItem)可以直接绑定到类的属性并忽略 p:selectManyCheckboxes 的值吗? 在 java 上一切正常,我已经调试过并且值是正确的,他们甚至在 f:selectItem 中的“tittle”属性上打印 OK(有些是真的,有些是假的)
PS:我也无法理解 ItemLabel、label、ItemValue、Value 之间的区别
【问题讨论】:
标签: jsf jsf-2 primefaces nested