Exibindo mensagem sem <h:messages/>

Olá, eu tenho no meu projeto vários formulários…

<h:form>
<h:messages/>

aki no meio tem vários
<h:inputText required="true" requiredMessage="teste" ...../>

e no final um botão que chama um método no ManagedBean.
<h:commandButton.../>

</h:form>

O problema é que quando eu clico no botão sem valor no inputtext, ele aparece neste caso, a mensagem teste em cima do h:form e no lugar do <h:messages/>

e se eu retiro o <h:messages/> ele aparece a mensagem “teste” uma vez em cima do <h:form>

como eu faço pra tratar isso?

cara,

sua explicação ficou meio confusa, mas acho o que vc quer é isso, coloque globalOnly=“true” no seu h:messages

t+

resumidamente
ele ta exibindo mensagem sem o <h:messages>

eu queria que mostrasse a mensagem só no lugar onde eu coloco o <h:message>… mais quando eu coloco isso, ele fica aparecendo em 2 lugar

entao,

é so fazer do jeito que eu te falei, que vai funcionar.

t+

eu coloquei desse jeito ai e continuo exibindo as mensagens la em cima da página…

e se eu tiro esse globalOnly=“true” ele exibe as mensagens nos 2 lugares…

Em cima do seu form você não tem a tag:
<h:messages/>

Talvez em outra página?

cara,
os componentes funcionar assim,

h:messages com globalOnly=“true”, ele so vai exibir as msg que vc setou no seu MB com FacesContext.getCurrentInstance().addMessage
h:message vc vai vincula-lo ao seu componente, por exemplo um inputtext com requered true, ele vai exibir essa mensagem.

da uma verificada no que vc está fazendo.

t+

no meu MB nao tem nenhuma mensagem do tipo FacesContext.getCurrentInstance().addMessage

e no meu xhtml não tem <h:messages> sem ou com o globalonly…

o estranho eh isso… ele ta exibindo mensagem do nada…

pelo q eu vi eh antes do <h:form>…

cara,
da um clean no seu projeto, da uma limpada no seu servidor de aplicação.

t+

eu ja fiz isso, várias vezes…

faz tempo na verdade q ta aparecendo…

a unica tag q eu tenho diferente na página eh <ui:include src=“topo.xhtml”/>

axo q num tem nada a ve

  • pelo que eu vi aki, fiz o teste, as mensagens estão vindo entre o

<ui:include src=“topo.xhtml”/>

AKI

<h:form>

e meu topo.xhtml só tem um
<c:if test…>

Tem como postar a página toda?

Primeiro o topo.xhtml

[code]

web.exame
#{util.saudacao} | #{util.mensagem} |
[/code]

Agora o medico_cadastro.xhtml

[code]

//eh bem aqui que aparece a mensagem do nada

Cadastrar Médico

Nome*
CRM*
Telefone*
Clinica*
[/code]

e aqui meu método de cadastrar

//método que cadastra um novo medico public String cadastro() { String retorno = ""; try { dao.salvarNovo( medicos = (List<Medico>) dao.recuperaLista(Medico.class); retorno = "medicos"; } catch (Exception e) { retorno = "medico_cadastro"; } return retorno; }

Faz seguinte. Faz uma busca por todo seu projeto procurando a palavra teste! =D

nao nao, akilo ali em cima eu falei só pra exemplo

meu projeto está exatamente como postei ai em cima

sem nenhuma tag <h:message ou messages/>

e ta exibindo a mensagem… ta meio loco issso

e pq eu tenho nos campos o required true e tenho uma requiredMessage…

  • eu não to especificando nenhum lugar pra exibir as mensagens tpow

Nome Obrigatório
CRM Obrigatório… etc…

No seu web.xml você tem alguma configuração do tipo:

<param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value>