Message Validator JSF

Seguinte pessoal estou com o seguinte problema…

Estou estudando JSF e estou usando <f:validator> para validar alguns campos do meu formulário

porem quando ocorre a validação ele exibe as menssagens dos campos da forma abaixo

formTamplate:txtInputPais: Erro de validação: o valor mínimo inadmissível é ‘3’.

e eu gostaria q as menssagem aparecesse

Erro de validação: o valor mínimo admissível é ‘3’.

aguem tem alguma ideia…

desde já agradeço

Colocou o <h:message for="txtInputPais" /> mapeiou no resource.propertie certinho?

simm ja mapiei messages_pt_BR.properties

no faceles-config.xml

Manda seu jsp ou xhtml 8)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
				xmlns:ui="http://java.sun.com/jsf/facelets"
				xmlns:h="http://java.sun.com/jsf/html"
				xmlns:f="http://java.sun.com/jsf/core"
				xmlns:a4j="http://richfaces.org/a4j"
				xmlns:rich="http://richfaces.org/rich"
				xmlns:t="http://myfaces.apache.org/tomahawk"
				xmlns:c="http://java.sun.com/jstl/core"
				template="/pages/myCrudTemplate.xhtml"
				xmlns:custom="http://exemplo.com.br/jsf">

	
	<!-- passa par&#65533;metro para o template -->
	<ui:param name="defaultBean" value="#{paisBean}" />
	
	<ui:define name="title">
		Cadastro de Países
<!--		<t:saveState id="_bean" value="#{paisBean}" />-->
	</ui:define>
	
	<ui:define name="head">
		<style  type="text/css">
	        .odd-row {
	            background-color: #ECF3FE;
	        }
	        .even-row {
	            background-color: #FCFFFE;
	        }
	    </style>
	</ui:define>
	
	<!-- define searchlistBlock -->
	<ui:define name="searchlistBlock">
		
		<rich:panel id="block">
			
			<f:facet name="header" rendered="#{defaultBean.pesquisarState}">
				<h:outputText value="#{paisBean.pesquisarState ? 'Pesquisar' : 'País'}" />
			</f:facet>

			<rich:panel id="searchlistBlock"
				rendered="#{defaultBean.pesquisarState}">


				<h:panelGrid columns="2" rowClasses="odd-row,even-row">

					<h:outputText value="ID:" />
					<h:panelGrid columns="4">
						<h:inputText value="#{paisBean.nome}" size="15" />
						<h:outputText value="Nome:" />
						<h:inputText value="#{paisBean.nome}" size="100" />
						<a4j:commandButton value="Pesquisar" action="#{paisBean.pesquisar}" />
					</h:panelGrid>

				</h:panelGrid>

				<rich:spacer height="30" />

				<rich:extendedDataTable value="#{paisBean.paises}" var="pais" ajaxSingle="false"
					id="table" width="100%"
					height="400px" sortMode="single" selection="#{paisBean.selection}"
					selectionMode="single">

					<rich:column sortable="true" sortBy="#{pais.id}"
						width="10%"
						label="ID">

						<f:facet name="header">
							<h:outputText value="ID" />
						</f:facet>
						<h:outputText value="#{pais.id}" />

					</rich:column>

					<rich:column sortable="true" sortBy="#{pais.nmPais}"
						width="50%"
						label="Pais">

						<f:facet name="header">
							<h:outputText value="Pais" />
						</f:facet>
						<h:outputText value="#{pais.nmPais}" />

					</rich:column>

					<rich:column sortable="true" sortBy="#{pais.sgPais}"
						width="10%"
						label="Sigla">

						<f:facet name="header">
							<h:outputText value="Sigla" />
						</f:facet>
						<h:outputText value="#{pais.sgPais}" />

					</rich:column>
					
					<rich:column sortable="true" sortBy="#{pais.ddi}"
						width="10%"
						label="DDI">

						<f:facet name="header">
							<h:outputText value="DDI" />
						</f:facet>
						<h:outputText value="#{pais.ddi}" />

					</rich:column>	

					<rich:column sortable="true" sortBy="#{pais.cdPais}"
						width="10%"
						label="CD. País">

						<f:facet name="header">
							<h:outputText value="CD. País" />
						</f:facet>
						<h:outputText value="#{pais.cdPais}" />

					</rich:column>										


					<a4j:support action="#{paisBean.takeSelection}" event="onclick" />

					<f:facet name="footer">

						<rich:datascroller align="center" for="table" maxPages="10" />

					</f:facet>

				</rich:extendedDataTable>

			</rich:panel>

			<rich:panel id="addUpdateBlock" ajaxSingle="true"
				rendered="#{defaultBean.adicionarState or defaultBean.editarState or defaultBean.excluirState}" style="height: 490px;">

				<h:panelGrid columns="2" id="panel2"
					columnClasses="odd-row,even-row" >
					<h:outputLabel value="ID: " />
					<h:column>
						<h:inputText value="#{paisBean.pais.id}" size="10"
							readonly="true" id="txtInputId" style="#{paisBean.editarState ? 'color: gray;' : ''}" onblur="this.value = this.value.toUpperCase();"/>
						<br />
						<h:message for="txtInputId" errorStyle="color: darkred;" />
					</h:column>
					<h:outputLabel value="País: " />
					<h:column>
						<h:inputText value="#{paisBean.pais.nmPais}" size="40"
							required="true" id="txtInputPais"  maxlength="50"
							requiredMessage="Campo Nome é Obrigatorio"
							style="#{paisBean.editarState ? 'color: gray;' : ''}" onblur="this.value = this.value.toUpperCase();">
							<f:validateLength minimum="3" />
						</h:inputText>	
						<rich:message for="txtInputPais" showSummary="false"
							showDetail="false">
							<f:facet name="errorMarker">
								<a4j:outputPanel>
									<h:graphicImage value="/images/error.png" />
									<rich:toolTip>
										<rich:message for="txtInputPais" />
									</rich:toolTip>
								</a4j:outputPanel>
							</f:facet>
						</rich:message>
					</h:column>
					<h:outputLabel value="Sigla: " />
					<h:column>
						<h:inputText value="#{paisBean.pais.sgPais}" size="10"
							maxlength="2" id="txtInputSigla" redisplay="true"
							onblur="this.value = this.value.toUpperCase();" required="true"
							requiredMessage="Campo Sigla é Obrigatório." />
						<br />
						<h:message for="txtInputSigla" errorStyle="color: darkred;" />
					</h:column>
					<h:outputLabel value="DDI: " />
					<h:column>
						<h:inputText value="#{paisBean.pais.ddi}" size="10"
							required="true" id="txtInputDdi" maxlength="2"
							requiredMessage="Campo DDI é Obrigatório."
							onblur="this.value = this.value.toUpperCase();" />
						<br />
						<h:message for="txtInputDdi" errorStyle="color: darkred;" />
					</h:column>
					<h:outputLabel value="CD. País: " />
					<h:column>
						<h:inputText value="#{paisBean.pais.cdPais}" size="10"
							required="true" id="txtInputCdPais" maxlength="7"
							requiredMessage="Campo DDI é Obrigatório."
							onblur="this.value = this.value.toUpperCase();" />
						<br />
						<h:message for="txtInputCdPais" errorStyle="color: darkred;" />
					</h:column>					
				</h:panelGrid>

			</rich:panel>

			<rich:spacer height="20" />
			
			<center>
			
				<custom:btnNew mbean="#{paisBean}" acao="prepareAdicionar" renderiza="#{paisBean.pesquisarState}"/>

				<a4j:commandButton value="Editar" action="#{paisBean.prepareEditar}"  style="width: 100px; height: 30px;" rendered="#{paisBean.pesquisarState}"/>

				<a4j:commandButton value="Excluir"
					action="#{paisBean.prepareExcluir}"  style="width: 100px; height: 30px;" rendered="#{paisBean.pesquisarState}"/>
					
				<a4j:commandButton value="Salvar" action="#{paisBean.adicionar}"
					rendered="#{paisBean.adicionarState or paisBean.editarState or paisBean.excluirState}"  style="width: 100px; height: 30px;"/>
				
				<a4j:commandButton value="Voltar" action="#{paisBean.voltar}"
					immediate="true" rendered="#{paisBean.adicionarState or paisBean.editarState or paisBean.excluirState}"  style="width: 100px; height: 30px;"/>	
					
			</center>
			
		</rich:panel>
	</ui:define>
	
	<!-- define addUpdateBlock -->
	<ui:define name="addUpdateBlock">
	
	</ui:define>
</ui:composition>

Eu nao quero que apareça: formTamplate:txtInputPais:

formTamplate:txtInputPais: Erro de validação: o valor mínimo inadmissível é ‘3’.

[quote=rxavier]Eu nao quero que apareça: formTamplate:txtInputPais:

formTamplate:txtInputPais: Erro de validação: o valor mínimo inadmissível é ‘3’.
[/quote]

está: <h:message for="txtInputId" não seria Pais no lugar de Id? olha o id do seu input id="txtInputPais"

Sim !
O ID tem q ser esse mesmo se não ele vai gerar um
ID cabulozo e vai exibir do mesmo jeito

[quote=rxavier]Sim !
O ID tem q ser esse mesmo se não ele vai gerar um
ID cabulozo e vai exibir do mesmo jeito[/quote]

Então acerta seu Id no Messages que está errado :smiley:

e o id do form

vai aparecer tbm e vai ficar estranho

eu quero que so apareça a msg !

tem como fazer isso ou nao ?

Opa foi mal no input falta um label="#{ResourceLabel.txtInputPais}" teste assim: label="txtInputPais"

valeu agora deu certo
Muito obrigado!!

Valeu Eduardo…