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 h:selectOneMenu值在提交表单时始终为空_Jsf_Jsf 2_Form Submit_Selectonemenu - Fatal编程技术网

Jsf h:selectOneMenu值在提交表单时始终为空

Jsf h:selectOneMenu值在提交表单时始终为空,jsf,jsf-2,form-submit,selectonemenu,Jsf,Jsf 2,Form Submit,Selectonemenu,我有一个h:selectOne菜单,过去没有问题,但由于某种原因,搜索结果中的值。提交表单时,selectedCategories始终为空 小部件位于表单中。支持bean将selectedCategories作为带有访问器方法的私有字符串。我尝试清理项目,关闭Eclipse,并将其重新发布到Tomcat。什么都不管用。知道为什么吗 这是小部件: <h:selectOneMenu id="categoriesBoxSimple" value="#{searchResults.selected

我有一个
h:selectOne菜单
,过去没有问题,但由于某种原因,
搜索结果中的值。提交表单时,selectedCategories
始终为空

小部件位于表单中。支持bean将
selectedCategories
作为带有访问器方法的私有字符串。我尝试清理项目,关闭Eclipse,并将其重新发布到Tomcat。什么都不管用。知道为什么吗

这是小部件:

<h:selectOneMenu id="categoriesBoxSimple" value="#{searchResults.selectedCategories}" >
  <f:selectItem itemLabel="Category 1" itemValue="283331" />                    
  <f:selectItem itemLabel="Category 2" itemValue="281" />
  <f:selectItem itemLabel="Category 3" itemValue="1115"/>
</h:selectOneMenu>

`添加`
至h:选择一个功能表
YourBean.java
公共无效ajaxChangeValue(最终AjaxBehaviorEvent事件){
//做点什么
}
//数字值的获取者和设置者

“什么都不管用”不是对您实际问题的正确描述。-查找验证错误,检查是否调用了setter方法。您是否绝对肯定表单没有嵌套,并且ajax操作(如果有)也在执行/处理菜单?尽管如此,您的问题一定是我添加到小部件中的@BalusC测试的问题,现在该值被捕获了。但是当提交表单时,它不会。我在页面上的同一位置有其他类似的小部件,它们工作正常。那么就根据代码创建一个MCVE。我想我只是将它与我之前评论中的f:ajax一起使用。为什么?这是一个(很可能不需要的)解决非明确问题的方法(OP已经描述过)。所以它实际上不是一个“答案”),而你的答案格式也不是很好。请检查并编辑
`Add`
<f:ajax listener="#{yourBean.ajaxChangeValue}" />
to h:selectOneMenu

<h:selectOneMenu value = "#{yourBean.numberValue}"> 
<f:selectItem itemValue="One" />
<f:selectItem itemValue="Two" />
<f:selectItem itemValue="Three" />
<f:ajax listener="#{yourBean.ajaxChangeValue}" />
</h:selectOneMenu>

YourBean.java
public void ajaxChangeValue(final AjaxBehaviorEvent event) {    
// do something
}

//getter and setter of numberValue