estou desenvolvendo uma app em jsf… e gostaria de saber como faço para customizar os erros vindo do controller…
exemplo… erro vindo do hibernate… tipo um ConstraintViolationException…
tentei inserir uma chave duplicada e recebi um ConstraintViolationException… porem isto vai pra uma pagina de erro… td feio e sinistro :shock:
gostaria de escrever algo mais bunitinho… tipo um “Voce tentou gravar um registro que ja existe”…
algo assim… de preferencia no proprio formulario q o cidadão esta inserindo os dados…
depois de tratada, vc decide a melhor forma de exibir o erro para o usuário.
também estou desenvolvendo em JSF e exibo a msg de erro num modal panel (richfaces).
J
Jeferson_Manetti
olá finotti,
tratar a exeção e tranquilo… estudei muito sobre isso pra certificação =)
talvez e me expliquei mal…
o problema e apresentar a exceção para o usuario… tipo não queria criar uma pagina de erro para cada exception lançada… e tambem não queria criar uma por codigo de erro (tipo 500)…
entendeu?
como vc faz para exibir em um modal Panel?
a validação do Jsf eu uso assim:
<h:outputTextvalue="Quantidade aproximada de resíduo:"styleClass="label"/><h:inputTextlabel="Quantidade aproximada de resíduo"id="qtdeRes"required="true"value="#{propostaHandler.proposta.qtdeResiduo}"><rich:ajaxValidatorevent="onblur"/></h:inputText><rich:messagefor="qtdeRes"><f:facetname="passedMarker"><h:graphicImagevalue="/recursos/imagens/passed.gif"/></f:facet><f:facetname="errorMarker"><h:graphicImagevalue="/recursos/imagens/error.gif"/></f:facet></rich:message>
agora queria uma forma elegante de exibir as exception do controller!!!
at.,
F
finotti
opa, realmente te entendi mal :lol:
para o controller, criei uma classe utilitária que envia mensagens para a tela. não sei se é o que vc procura, mas pode servir de "idéia".
na página, vc exibe as mensagens do jeito que preferir
J
Jair_Rillo_Junior
Como você já sabe tratar as exceptions, você pode simplesmente adicionar os valores no FacesMessage (do FacesContext) e apresentá-lo no JSF com o rich:messages. Porém se você quer algo mais customizado, aconselho criar um componente para mostrar as mensagens de erro (eu trabalho assim e funciona muito bem).
complementando…
no seu controller, vc utilizaria essa classe em caso de exceção
try {
//grava no banco
} catch (ConstraintViolationException ex) {
ClasseUtil.exibirMsgErro("Voce tentou gravar um registro que ja existe...");
}
J
Jeferson_Manetti
pow galera!!! gostei das ideias =)
eu tenho um filtro... portanto vou tratar as exception nele... pelo menos as mais comuns...
deem uma olhada ja coloquei as padrão, agora e so acrescentar as q eu preciso =)
a respeito da tag... posso criar uma Custom Tag mesmo =)
e simples facil e eficiente!!!
daria ate para colocar uns JavaScript na tag e montar uma msg bem legal =)