Validação campo obrigatório JSF.  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
alberto_ribeiro
JavaEvangelist
[Avatar]

Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline

boa tarde, alguém poderia me ajudar ? estou com uma duvida a respeito de validação de campos obrigatórios no JSF.

estou fazendo assim:

Página index.jsp


faces config:


Messages:


Porém ele mostra a mensagem Validation Error\: {0} Missing value!
como faço para trocar para mostrar: Campo Usuário é Obrigatório! ou a outra mensagem..

[]'s e obrigado..

Sun Certified Programmer for Java 1.5
[Email] [MSN]
brunotonet
Thread.start()

Membro desde: 06/04/2007 11:32:41
Mensagens: 26
Offline

no arquivo
com.br.abet.componentelogin.common.messages.messages

coloque os seguintes atributos:
#---- Config Geral de Erros Padrao do JSF
#-- Campo obrigatório
javax.faces.component.UIInput.REQUIRED=digita a msg aqui
#-- Valor especificado não esta entre os valores
javax.faces.validator.NOT_IN_RANGE=digita a msg aqui
#-- Valor nao é numerico
javax.faces.validator.DoubleRangeValida-tor.TYPE=digita a msg aqui
#-- Valor nao é numerico
javax.faces.validator.LongRangeValida-tor.TYPE=digita a msg aqui
#-- Valor tem que ser numerico
javax.faces.component.UIInput.CONVERSION=digita a msg aqui
[Email]
alberto_ribeiro
JavaEvangelist
[Avatar]

Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline

Bruno muito Obrigado por essas dicas, por exemplo e se eu quiser especificar mais de um REQUIRED como eu faço, porque posso ter senha e usuario e os dois são obrigatórios e com msg diferente especificando o campo que é obrigatorio...

e como colocar na pagina porque eu tenho assim e ele chama o required e se eu quiser chamar o de range em outro campo e não for required ?



[]'s e obrigado

Sun Certified Programmer for Java 1.5
[Email] [MSN]
brunotonet
Thread.start()

Membro desde: 06/04/2007 11:32:41
Mensagens: 26
Offline

da uma olhada aqui..
http://www.horstmann.com/corejsf/jsf-tags.html
"Table 4?22 Attributes for h:message and h:messages"
Qualquer coisa faço um exemplo lhe envio...

até..


[Email]
gomesrod
GUJ Ranger
[Avatar]

Membro desde: 11/05/2007 19:46:22
Mensagens: 901
Offline

Se o layout do seu formulário permitir, você pode colocar uma tag h:message para cada campo. Quando houver erros, todas as mensagens serão exibidas ao lado de onde o erro ocorreu.

Se o layout é mais "apertado", você pode exibir as mensagens de erro embaixo da tela, e um marcador (asterisco por exemplo) ao lado dos campos que deram erro. (Se precisar de ajuda para fazer isso é só dizer)
alberto_ribeiro
JavaEvangelist
[Avatar]

Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline

então eu fiz assim acho que ficou legal:



Uma ultima pergunta o que vem a ser este primeiro parametro passado dentro addMessage, eu tenho com pegar ele depois na página ?

[]'s e obrigado

Sun Certified Programmer for Java 1.5
[Email] [MSN]
gomesrod
GUJ Ranger
[Avatar]

Membro desde: 11/05/2007 19:46:22
Mensagens: 901
Offline

Este primeiro parametro é o id do componente a que se refere o erro.

Só relembrando: Você pode ter uma tag <h:messages> que mostra todas as mensagens, ou uma tag <h:message> para cada componente da página.

Ou seja, voce usa esse primeiro parametro do addMessage se desejar que a mensagem apareça na tag <h:message> de um componente específico.

(OBS: Eu nunca testei essa situação de adicionar mensagem informando o id do componente, só vi pela documentação).
dahenz
Virtual Machine Man
[Avatar]

Membro desde: 04/10/2006 16:42:13
Mensagens: 578
Offline

Estava olhando os posts desse tópico... que muito me ajudou.... mas estou com um problema na hora de visualizar a mensagem na minha tela de login.... fiz o que o gamesrod falou, mas apenas aparece uma mensagem default como segue: Erro de validação.

Como faço para mostrar a mensagem adicionada no FacesMessage????


Obrigado...

Daian Henz
[Email]
marcusviniciusaso
Debugger
[Avatar]
Membro desde: 14/09/2010 10:57:59
Mensagens: 65
Offline

Tópico extremamente antigo, mas resolvi postar uma solução que acho mais simples

Se você colocar no arquivo .properties:

"javax.faces.component.UIInput.REQUIRED=Campo {0} é Obrigatório!"

basta colocar um atributo label no seu input, informar um nome amigável que você quer que apareça na mensagem e configurar o input como obrigatório(required="true") e pronto. O que está no label será colocado no lugar de {0}. Agora é só deixar o restante com o JSF e ir tomar um café

Fica com Deus.

Marcus Vinícius
SCJA | SCJP | OCPWCD
[Email]
Polverini
Virtual Machine Man
[Avatar]

Membro desde: 26/05/2009 15:57:49
Mensagens: 707
Offline

pq nao usar beanValidation ?

Antes de postar consulte seu amigo GOOGLE é de graça !




Estudante de Sistemas de Informação Unifil
[Email]
marcusviniciusaso
Debugger
[Avatar]
Membro desde: 14/09/2010 10:57:59
Mensagens: 65
Offline

Polverini,

Como você sabe, existem n formas de se fazer validação. Coloquei no post anterior o que eu acho mais simples para se utilizar o required e exibir mensagens dinamicamente. É uma validação sem alterar as entities, só alterando as views e adicionando um arquivo properties para as mensagens(caso já não exista). Mas nada impede que seja utilizado BeanValidation. Aliás, acho BeanValidation bem bacana. Dá para fazer algumas coisas mais complexas, assim como criar padrões e anotações para validar diversos campos com validações customizáveis.

Valeu.

Abraço.


Marcus Vinícius
SCJA | SCJP | OCPWCD
[Email]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team