我是JSF的新手!
我使用PrimeFaces selectOneMenu并花了几个小时阅读问题,试图弄清楚为什么(1)ajax监听器没有被调用或(2)为什么selectedCategory没有被更新。现在它可以工作,但我必须将value="#{categoryList.selectedCategory}"
中传递给我的bean的类型更改为String
。在我使用Category
对象之前。这是为什么? Category
实施java.io.Serializable
,如果这很重要的话。
这是我的代码:
<p:selectOneMenu id="ddlCategories" value="#{categoryList.selectedCategory}"
style="width:125px">
<p:ajax event="change" update="artistGrid" immediate="true"
listener="#{UFOUser.showArtists()}" />
<f:selectItem itemLabel="All Categories" itemValue="null" />
<f:selectItems value="#{categoryList.categories}" var="category"
itemLabel="#{category.name} (#{category.abbreviation})"
itemValue="#{category.getID()}" />
</p:selectOneMenu>