Jsf 如何从<;h:selectOneMenu>;?
我想从中获取值。我尝试过此代码,但不起作用:Jsf 如何从<;h:selectOneMenu>;?,jsf,selectonemenu,Jsf,Selectonemenu,我想从中获取值。我尝试过此代码,但不起作用: <h:form> <h:outputLabel value="départements : "/> <h:selectOneMenu value="#{departementController.selected.id}" onchange="submit()" immediate="true"> <f:valueChangeListener type=
<h:form>
<h:outputLabel value="départements : "/>
<h:selectOneMenu value="#{departementController.selected.id}" onchange="submit()" immediate="true">
<f:valueChangeListener type="Controller.Listener.DepartementValueListener"/>
<f:selectItems value="#{departementController.itemsAvailableSelectOne}"/>
</h:selectOneMenu>
<h:outputLabel value="nouvelle valeur : "/>
<h:inputText value="#{departementController.comboBox}" id="dep"/>
</h:form>
sourceId=j_idt7:j_idt9[严重性=(错误2),摘要=(验证错误。验证错误。),细节=(j_idt7:j_idt9:验证错误。验证错误。)您已经解决了所有2个问题 首先,错误“erreur de validation.La valeur est incorrecte”是“validation error:Value is not valid”的法语翻译,意思是提交的值不等于
中的任何可用项。您的代码不够完整,无法指出根本原因,但我猜您在
中有一个列表,因此每个项目都是部门
,但您试图将其设置为字符串
值,而不是部门
。这是不对的。您需要在部门
和字符串
之间提供一个转换器,并改用{departmentcontroller.selected}
大概是这样的:
<h:selectOneMenu value="#{bean.selectedDepartment}">
<f:selectItems value="#{bean.availableDepartments}" />
</h:selectOneMenu>
与
另见:
毕竟你有两个问题
首先,错误“erreur de validation.La valeur est incorrecte”是“validation error:Value is not valid”的法语翻译,意思是提交的值不等于
中的任何可用项。您的代码不够完整,无法指出根本原因,但我猜您在
中有一个列表,因此每个项目都是部门
,但您试图将其设置为字符串
值,而不是部门
。这是不对的。您需要在部门
和字符串
之间提供一个转换器,并改用{departmentcontroller.selected}
大概是这样的:
<h:selectOneMenu value="#{bean.selectedDepartment}">
<f:selectItems value="#{bean.availableDepartments}" />
</h:selectOneMenu>
与
另见:
您使用的是哪一个JSF版本?我使用的是jpa2.0+jsf2.0+ejb3.0+primefaces3.2页面的代码源:nouvelle valeur:您使用的是哪一个JSF版本?我使用的是jpa2.0+jsf2.0+ejb3.0+primefaces3.2页面的代码源:nouvelle valeur:将侦听器移动到支持bean中,通过所选项目可在其部门
表单中直接获得。但是,如果您想要一个通用的
监听器,它可以在任何selectOneMenu(独立于特定的支持bean)上为您完成任务,该怎么办?将监听器移动到支持bean中,可以使所选项直接在其部门
表单中可用,从而大大简化问题。但是如果您想要一个通用的监听器,它可以在任何selectOneMenu上为您完成任务(独立于特定的支持bean),该怎么办?
private Department selectedDepartment;
private List<Department> availableDepartments;
<h:selectOneMenu value="#{bean.selectedDepartment}">
<f:selectItems value="#{bean.availableDepartments}" />
<f:ajax listener="#{bean.changeDepartment}" render="inputId" />
</h:selectOneMenu>
<h:inputText id="inputId" value="#{bean.input}" />
public void changeDepartment() {
input = selectedDepartment.getId();
}