Kus*_*ahu 0 validation ajax jsf selectonemenu primefaces
我有一个h:inputText,h:selectonemenu和commandbuton.Inputtext是必填字段,我将其定义为immediate ="true".然后,当我单击按钮时,我想将selectonemenu的当前值传递给托管bean.但它的passig null.如何管理此验证,以便我可以在托管bean中获取selectOneMenu的值.
我的代码是......
<h:inputText id="inputSome" required="true" requiredMessage="Pls enter something"/>
<h:message for="inputSome"></h:message>
<h:selectOneMenu id="recepients" value="#{controller.selected}" immediate="true">
<f:selectItem itemLabel="Select" itemValue=""/>
<f:selectItems value="#{controller.tempNameList1}"></f:selectItems>
</h:selectOneMenu>
<p:commandButton value="Add" action="#{controller.submit}"
immediate="true"/>
Run Code Online (Sandbox Code Playgroud)
当您immediate=true输入commandButton时,将Invoke Application直接执行阶段,跳过(和包括)验证后的阶段.因此,也会跳过"应用模型值"阶段,并且托管bean的属性保持未初始化状态.这会导致您为值的值传递null selectOneMenu.解决方案是,您必须手动检索selected控制器的属性值,如下所示:
Map<String, String> paramMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
for (String key : paramMap.keySet()) {
if (key.contains("recepients")) {
selected = Integer.parseInt(paramMap.get(key));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2362 次 |
| 最近记录: |