Quebrar linhas <h:message - JSF

6 respostas
V

Tenho um formulario e preciso fazer a validação no braço e gostaria que todas as mensagens fossem adicionadas de uma única vez, porém eu adiciono “\n” ou “
” no final de cada mensagem para o jsf quebrar a linha para a próxima mensagem porém ele não quebra. Quando adiciono “\n” nada acontece e quando eu adiciono “
” ele vai para a pagina com o valor “< br />”.

Alguém já passou por isso?

6 Respostas

G

Olá,

Se estiver mostrando as mensagens em um h:outputText basta utilizar o atributo “escape” para que o
seja renderizado corretamente.

Se estiver utilizando h:messages a coisa fica um pouco mais complicada, pois esta tag não possui o "escape"
http://forums.sun.com/thread.jspa?threadID=5299425

EDITADO:
Que tonto que eu sou, no assunto já dizia que era h:message.

Então…
Você está tentando colocar todas as mensagens em um único h:message ?
Ou é o h:messages ?

V

estou usando <h:messages

B

CARA TENTA USAR O PRIMEFACES, ELE TEM O <P: MESSAGES> QUE FAZ ISSO PRA VC FACIM FACIM…

V

bruno.neves:
CARA TENTA USAR O PRIMEFACES, ELE TEM O <P: MESSAGES> QUE FAZ ISSO PRA VC FACIM FACIM…

www.primefaces.org

vo da uma olhada

valew

EDIT:
ta dando problema de dependencia
Cause: Class ‘org.primefaces.application.PrimeFacesPhaseListener’ is missing a runtime dependency: java.lang.NoClassDefFoundError: javax/faces/component/visit/VisitCallback

vc sabe qual jar a mais tem q ter?

G

Enquanto resolve o probleminha com o PrimeFaces, me diga uma coisa:

Você está colocando todos os erros em uma única mensagem?

Se for isso então não é o jeito mais correto. Grave cada erro em um FacesMessage, aí o h:messages mostra tudo organizado, não precisa fazer nada.

V

gomesrod:
Enquanto resolve o probleminha com o PrimeFaces, me diga uma coisa:

Você está colocando todos os erros em uma única mensagem?

Se for isso então não é o jeito mais correto. Grave cada erro em um FacesMessage, aí o h:messages mostra tudo organizado, não precisa fazer nada.

eu estou fazendo dessa maneira:

FacesContext context = FacesContext.getCurrentInstance();

		if (Util.isEmpty(projetoBean.getNome())) {
			String mensagem = mensagens.getString("mensagem.validacao.obrigatorio");
			String param1 = labels.getString("projeto.nome");

			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, null, MessageFormat.format(mensagem, param1)));
			formularioOK = false;
		}

		if (Util.isEmpty(projetoBean.getDescricao())) {
			String mensagem = mensagens.getString("mensagem.validacao.obrigatorio");
			String param1 = labels.getString("projeto.descricao");

			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, null, MessageFormat.format(mensagem, param1)));
			formularioOK = false;
		}

		if (Util.isEmpty(projetoBean.getGerentes())) {
			String mensagem = mensagens.getString("mensagem.validacao.selecaoObrigatoria");
			String param1 = labels.getString("projeto.gerente");

			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, null, MessageFormat.format(mensagem, param1)));
			formularioOK = false;
		}

		if (Util.isEmpty(projetoBean.getRecursos())) {
			String mensagem = mensagens.getString("mensagem.validacao.selecaoObrigatoria");
			String param1 = labels.getString("projeto.recurso");

			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, null, MessageFormat.format(mensagem, param1)));
			formularioOK = false;
		}

O problema é que eu estou especificando a css class para a tag de mensagem, com uma borda e imagem, e para cada imagem adicionada ele cria uma outra tag lah no html, aí ele fica replicando, entendeu?

Consegui fazer funcionar com o PrimeFaces, se não conseguir de outra forma acho que vou usar ele mesmo.

Criado 15 de junho de 2010
Ultima resposta 15 de jun. de 2010
Respostas 6
Participantes 3