我在jsf中实现了以下selectOneListBox
<h:selectOneListbox value="#{category.selectedCategoryId}" onchange="submit()"
valueChangeListener="#{category.changeFunction}">
<f:selectItems value="#{category.categoryValues}" var="cat"
itemLabel="#{cat.categoryName}" itemValue="#{cat.categoryId}" />
</h:selectOneListbox>以下是更改监听器的代码
public void changeFunction(ValueChangeEvent e) {
System.out.println(e.getNewValue().toString());
}如您所见,我只能访问onchange函数中所选项目的itemValue。我想访问itemValue只是其一部分的对象。这怎麽可能?
发布于 2014-08-29 22:34:05
您需要将选择项的值设置为整个类别,如下所示:
<h:selectOneListbox value="#{category.selectedCategoryId}" onchange="submit()"
valueChangeListener="#{category.changeFunction}">
<f:selectItems value="#{category.categoryValues}" var="cat"
itemLabel="#{cat.categoryName}" itemValue="#{cat}" converter="catConverter"/>
</h:selectOneListbox>您还需要一个自定义转换器,它允许在控制器和视图之间序列化一个类别。
@FacesConverter("catConverter")
public class CategoryConverter implements Converter {
...
}https://stackoverflow.com/questions/25570421
复制相似问题