【发布时间】:2015-10-19 10:38:30
【问题描述】:
我需要通过<f:attribute> 获取<p: selectOneMenu /> 的值以便在验证器中使用:
<p:selectOneMenu id="tDocument" value="#{usuarioController.persona.tipoDocumento}">
<f:selectItem itemLabel="#{msg.selectOne}" itemValue=""/>
<f:selectItems value="#{tipeListController.tipoIdentificacion}" var="_tDocument" itemValue="#{_tDocument}"/>
</p:selectOneMenu>
<p:inputText id="doc" value="#{usuarioController.persona.num_documento}" required="true" validator="ciRucValidator">
<f:attribute id="idenType" name="identificationType" value="#{usuarioController.persona.tipoDocumento}" />
</p:inputText>
但是当试图在下面的验证器中获取它时,我得到null:
TipoIdentificacion identificationType = (TipoIdentificacion) component.getAttributes().get("identificationType");
这是怎么引起的,我该如何解决?
【问题讨论】:
-
尝试使用component.getAttributes().get("idenType")而不是component.getAttributes().get("identificationType"),使用属性的id
-
我尝试使用组件ID而不是属性名称,但我仍然得到同样的错误。
-
这些被表单元素包裹了吗?
-
f:attribute 无论如何都不支持
id属性。而且,如果它不在表单中,验证器就不会首先被击中。 -
谢谢你是对的
标签: validation jsf jsf-2 primefaces