Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu também fiz essa pergunta no stackoverflow, mas vamos lá..
Eu preciso acessar o objeto Bean usado na expressão EL de um UIComponent.
Por exemplo, nesta amostra de código:
xhtml:
<h:form>
<f:view>
<p:selectBooleanButton value="#{baseBean.selected}" onLabel="Instalar" offLabel="Ignorar" onIcon="ui-icon-check" offIcon="ui-icon-close">
<f:validator validatorId="baseValidator.items" />
</p:selectBooleanButton>
<p:commandButton type="submit" value="Submit"
actionListener="#{baseBean.process}"
ajax="false" />
</f:view>
</h:form>
java:
@FacesValidator("baseValidator.items")
public static class BaseValidator implements Validator
{
@Override
public void validate(FacesContext context, UIComponent component,
Object value) throws ValidatorException {
ValueReference reference = component.getValueExpression("value").getValueReference(context.getELContext());
Object o1 = reference.getBase();
Object o2 = reference.getProperty();
return; //break point here
}
}
Quando o command button é apertado o BaseValidator.validate é executado, eu preciso obter o objeto baseBean usado em:
<p:selectBooleanButton value="#{baseBean.selected}">
Meu código atualmente está lançando NullPointerException porque getValueReference está retornando nulo. Como eu pego aquele objeto dentro do método validate?
Carregando comentários...