Salve pessoal do GUJ, Boa Tarde!
Minhá dúvida deve ter uma resposta simples, porém já googlei em tudo que foi canto, sem sucesso.
Vamos lá! Como faço para alterar a cor de fundo e da borda de um componente input JSF na validação sem ser com JavaScript ou Ajax? Preciso que isso seja feito dentro do Validator/Converter!!! Teria que ser no meu código java de validalção/converção. Alguém pode me socorrer?
meu amigo, vc pode fazer o seguinte:
1 - o objeto do input deve começar diferente de null, tipo se for um nome de contato ele deve iniciar “”
2 - ai vc cria dois estilos para o componente, css mesmo e lá no styleClass vc verifica, se ele for null é pq gerou uma excessão e vc mostra um estilo, caso contrario …
<h:inputText id="nomeOperador" value="#{acaoCliente.operador.nome}" maxlength="40" styleClass="#{acaoCliente.operador.nome == null ? 'obrigatorio' : 'ok' }" title="Nome do Operador" />
tenta isto ai
desculpe minha ignorância, mas como ficaria o código css? nunca fiz desta forma!!
Cara não funcionou, não. Fiz assim :
1: criei as duas classes css - ‘input_text_erro’ ‘input_text’
<h:inputText required="true" requiredMessage="#{msg.required}"
id="txt_username_pf" [b]styleClass="#{MBusuarios.usuarios.username == null ? 'input_text_erro' : 'input_text' }"[/b] value="#{MBusuarios.usuarios.username}">
<f:validator validatorId="validator.validatorUsername" />
<a4j:support event="onblur"
reRender="txt_username_pf,msg_username_pf1,msg_username_pf2,painel" limitToList="true" />
</h:inputText>
// meu validator
public class validatorUsername implements Validator {
@Override
public void validate(FacesContext context, UIComponent component,
Object valorTela) throws ValidatorException {
FacesMessage message = new FacesMessage();
UsuariosDao dao = new UsuariosDao();
if (dao.findByUsername(String.valueOf(valorTela)) != null) {
((UIInput) component).setValid(false);
message.setSeverity(FacesMessage.SEVERITY_ERROR);
message.setDetail(ResourceBundle.getBundle(
FacesContext.getCurrentInstance().getApplication()
.getMessageBundle()).getString(
"erro.validacao.username"));
message.setSummary(ResourceBundle.getBundle(
FacesContext.getCurrentInstance().getApplication()
.getMessageBundle()).getString(
"erro.validacao.username"));
throw new ValidatorException(message);
} else {
((UIInput) component).setValid(true);
}
}
}