Boa Noite Pessoal,
Preciso de uma dica de vocês sobre tratamentos de erros utilizando Hibernate, Jsf, Facelets, pro cliente por exemplo:
1-O usuário digita no campo a ser preenchido por números inteiros um ?nome?, mas esse campo so deve ser digitado tipos inteiros; (O sistema deve avisar o usuário de que esse campo só deve ser do tipo inteiro);
2-Usuários a ser armazenados no banco, não pode ser armazenados nomes em duplicidades; ( Se o usuário digitar um nome que já esteja armazenado no banco o sistema deve avisar o usuário que o nome já esta armazenado)
3-Ao pesquisar um usuário se não estiver cadastrado avisar de que o usuário não este cadastrado e se deseja cadastrar;
- O que usar pra resolver esse tipo de problema?
- Onde utilizar o código de tratamento (DAO por exemplo)?
- Se for viável aplicar um padrão de projeto e quais vocês me indicam em se tratando dos tratamentos de erro em geral?
- Se tem material ou livro pra indicar?
- Nessa situação o que vocês costuma ultilizar o que pra resolver?
Se vc tiver usando os componentes do richFaces, é so vc usar o rich:messages. Nas tags do jsf padra, tb tem o f:messages. Vou deixar um exemplo usando richFaces.
Voce coloca isso na pagina que deseja mostrar a mensagem. O proprio JSF faz as conversoes da tela para o seu modelo (propriedades que receberam o valor digitado). Caso tenha algum erro ele lança as mensagens pra vc. É possivel vc criar classes de validadores tb.
<rich:messages layout="list">
<f:facet name="header">
<h:outputText value="Entered Data Status:"/>
</f:facet>
<f:facet name="passedMarker">
<h:graphicImage value="./images/sucesso.png"/>
</f:facet>
<f:facet name="errorMarker">
<h:graphicImage value="./images/erro.png"/>
</f:facet>
<f:facet name="fatalMarker">
<h:graphicImage value="./images/erro.png"/>
</f:facet>
</rich:messages>
Caso vc queira lançar mensagens do codigo Java para a tela do usuario, vc faz mais ou menos assim.
OBS.: É preciso ter as tags de messages na pagina para serem mostradas na tela.
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "MENSAGEM A MOSTRAR", null));
essa mensagem sera mostrada com a imagem que vc definiu para o facet errorMarker
Boa Noite francis.junio,
Eu tenho um <h:selectOneRadio> código e nome na minha página de consulta onde o usuário escolhe o tipo de consulta a ser realizada, após ele escolher uma das opções vai digitar o valor a ser consultado em uma <h:inputText> a minha dúvida é como usar o validator em um único <h:inputText> pra duas opções de consultas?
<h:selectOneRadio id="rbselecionar" value="#{suppliersList.searchOption}" styleClass="font">
<f:selectItems value="#{suppliersList.searchOptions}"/>
</h:selectOneRadio>
RESOLVIDO!
[quote=robertinhodf]Boa Noite francis.junio,
Eu tenho um <h:selectOneRadio> código e nome na minha página de consulta onde o usuário escolhe o tipo de consulta a ser realizada, após ele escolher uma das opções vai digitar o valor a ser consultado em uma <h:inputText> a minha dúvida é como usar o validator em um único <h:inputText> pra duas opções de consultas?
<h:selectOneRadio id="rbselecionar" value="#{suppliersList.searchOption}" styleClass="font">
<f:selectItems value="#{suppliersList.searchOptions}"/>
</h:selectOneRadio>