Validação em JSF + JSTL

6 respostas
R

Olá pessoal

Eu estou desenvolvendo uma aplicação utilizando JSF e nela existe um formulário que, caso o contactId do contato exista, um botão Remover é apresentado.
O código que faz esta verificação é:

<c:if test="${not empty form.contactId}">
	<h:commandButton value="#{text['button.remove']}" action="#{form.delete}" id="remove"/> 
</c:if>

O código funciona perfeitamente, porém se o usuário não preenche o formulário corretamente a validação do JSF é atividada, indicando os campos preenchidos incorretamente, porém o botão Remover desaparace.

Como fazer para que o botão continue aparecendo após a validação do JSF ser executada?

Desde já agradeço a ajuda.

6 Respostas

gilliard_santos

Olá Ricardo,
faça o seguinte teste, troque o c:if pelo atributo rendered do h:commandButton. Ficaria assim:

<h:commandButton value="#{text['button.remove']}" action="#{form.delete}" id="remove" rendered="#{not empty form.contactId}"/>

Depois de testar fala pra gente se deu certo ou nao.
vlw!

R

Eu fiz esta alteração, mas o erro continua o mesmo. Sempre que a validação do JSF é executada o botão Remover desaparece da página.

F

Põe um inputHidden pra persistir o contactId entre os requests. Eles está sendo perdido.

R

Mas eu já tenho um inputHidden. Ele está da seguinte forma:

<h:inputHidden id="contactId" value="#{form.contact.contactId}"/>

Devo alterar alguma coisa?

rossinimartins

Estou passando por um problema semelhante. Tenho um formulário de cadastro de usuários. Minha intenção era que, no ato do cadastro, surgisse um <h:inputtext> para o campo ‘matrícula’. No ato de atualização de dados, o <h:inputtext> seria substituido por ou <h:outputtext> para apenas mostrar a matricula, impedindo esse campo de sofrer modificação. Esses campos são alternados mediante o atributo ‘rendered’ com um valor booleano ‘modoAtualizacao’ regido por um manageBeam.

Mas quando faço o submit, o atributo booleano que está no ‘rendered’ perde seu valor, fazendo com que o formulário não apareça como deveria. Já pus um ‘inputHIdden’ para conservar o valor de ‘modoAtualizacao’ durante os requests, mas o problema ainda persiste.

rossinimartins

Alguém se habilita?

Criado 24 de novembro de 2006
Ultima resposta 14 de set. de 2007
Respostas 6
Participantes 4