【发布时间】:2015-06-04 18:16:46
【问题描述】:
我想制作 Checkbox 菜单并在 dataList 中显示数据。这是我的 xhtml:
<h:form>
<h:panelGrid columns="3" cellpadding="5">
<h:outputLabel for="menu" value="Demonstratori :" />
<p:selectCheckboxMenu id="menu" value="#{nastavnik.odabraniDemonstratori}" label="Demonstratori:"
filter="true" filterMatchMode="startsWith" panelStyle="width:250px">
<f:selectItems value="#{nastavnik.sviDemonstratori}" var="demons" itemLabel="#{demons.ime} #{demons.prezime}" itemValue="#{demons}" />
</p:selectCheckboxMenu>
<p:commandLink value="Submit" update="display" />
</h:panelGrid>
<p:outputPanel id="display" style="width:250px;padding-left:5px;margin-top:10px">
<p:dataList value="#{nastavnik.odabraniDemonstratori}" var="d" type="ordered" emptyMessage="Nema odabranih demonstratora">
#{d.ime}"
</p:dataList>
</p:outputPanel>
</h:form>
这是来自 Nastavnik bean 的重要代码:
private ArrayList<Demonstrator> odabraniDemonstratori;
public void setOdabraniDemonstratori(ArrayList<Demonstrator> odabraniDemonstratori) {
this.odabraniDemonstratori = odabraniDemonstratori;
}
public ArrayList<Demonstrator> getOdabraniDemonstratori() {
return odabraniDemonstratori;
}
演示器 bean 具有属性 ime。一切正常,但是当我尝试使用 #{d.ime} 在 dataList 中显示数据时,出现此错误:
/unoslabvezbe.xhtml @84,49 value="#{d.ime}": Property 'ime' not found on type java.lang.String
d 属性是 Demonstrator 类型而不是 String。有什么帮助吗?
【问题讨论】:
-
Demonstrator是公开课吗? -
是的,它的休眠 bean :@Entity public class Demonstrator extends Korisnik
-
它是否适用于更简单的示例?例如只需返回
ArrayList<String>?这只是一个调试建议,而不是“解决方案”。 -
当我只写 #{d} 时,它会调用 Demonstrator 上的 toString() 方法,所以我知道我有一个 Demonstrator 对象而不是 String,但是当我写 #{d.ime} 时,他调用 getIme( ) 在字符串上...
-
取出整个
p:selectCheckboxMenu是否还会出现错误?我知道您说错误消息是在抱怨#{d.ime},但在 Mathieu 在下面所说的之后,我想排除它。
标签: jsf primefaces datalist