Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 如何从JSF2中的selectOneMenu中获取选定的非字符串对象?_Jsf 2_Primefaces - Fatal编程技术网

Jsf 2 如何从JSF2中的selectOneMenu中获取选定的非字符串对象?

Jsf 2 如何从JSF2中的selectOneMenu中获取选定的非字符串对象?,jsf-2,primefaces,Jsf 2,Primefaces,我需要从selectOneMenu中检索所选项目,以防所选项目不是字符串 <p:selectOneMenu id="categoryCompId" value="#{serviceMB.selectedCategory}" converter="genericConverter"> <f:selectItem itemLabel="Select Category" itemValue="#{null}" noSelectionOption="true" />

我需要从selectOneMenu中检索所选项目,以防所选项目不是字符串

<p:selectOneMenu id="categoryCompId" value="#{serviceMB.selectedCategory}" converter="genericConverter">
    <f:selectItem itemLabel="Select Category" itemValue="#{null}" noSelectionOption="true" />
    <f:selectItems value="#{serviceMB.categories}" var="category" itemLabel="#{category.name}" itemValue="#{category}"/>
</p:selectOneMenu>

方法getSelectedCategory被调用并返回空值,但是方法SetSelectedCategory Category selectedCategory永远不会被调用

如果未提交该值,请检查您的p:selectOneMenu是否放在表单中。您还应该检查是否调用了转换器方法,并且在调用过程中没有引发异常。除了noselection选项attr之外,我的代码中有相同的用法。它在PF的5.1版本中正常工作。

是的,所有这些检查都已完成,但问题仍然存在。已调用getSelectedCategory,但从未调用过方法setSelectedCategory。当验证和转换阶段结束时,将调用setSelectedCategory方法。如果您已经正确定义了converter@FacesConverter,它实现了所需的接口,那么在提交表单后也应该调用该方法。如果方法getAsObject未引发任何异常,则可以记录/调试。将转换器粘贴到这里。