ce3po
Novembro 2, 2004, 5:21pm
#1
Olá Pessoal,
Estou querendo trocar(traduzir) e também incluir as mensagens padrões do JSF.
Exemplo: Quando eu entro uma letra em campo onde só número aceita o JSF volta a seguinte msg: Specified value is not a valid number.
Ou quando deixo o campo vazio o JSF devolve Value is required.
Acontece que estas msgs fica dentro de um pacote javax.faces.Message que faz parte da implementação do JSF.
E eu não sei como trocá-las.
Agradeço qualquer idéia. :lol:
Até mais.
Fabrício Luis
http://www.ce3po.com
O código JSP (JSF) está abaixo:
%@ taglib uri="http://java.sun.com/jsf/html" prefix="jsf_h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="jsf_f"%>
<%@ taglib uri="http://myfaces.sourceforge.net/tld/myfaces_ext_0_9.tld" prefix="x"%>
<html>
<head>
<title>Teste com JSF</title>
</head>
<body>
<jsf_f:loadBundle basename="mensagens" var="msg" />
<jsf_f:view >
<jsf_h:form>
a: <jsf_h:inputText id="valorA" value="#{soma.valorA}" required="true"
validator="#{soma.validate}" />
<jsf_h:message
style="color: red; font-family: 'New Century Schoolbook', serif; font-style: oblique; text-decoration: overline"
id="errors1" for="valorA"/>
<br>
b: <x:inputText id="valorB" value="#{soma.valorB}" required="true"
validator="#{soma.validate}" />
<jsf_h:message
style="color: red; font-family: 'New Century Schoolbook', serif; font-style: oblique; text-decoration: overline"
for="valorB"/>
<br>
<jsf_h:commandButton id="OK" action="sucesso" value="OK" />
</jsf_h:form>
</jsf_f:view>
</body>
</html>
code
Novembro 3, 2004, 9:53am
#2
Ao invés de alterar o arquivo javax.faces.Messages.properties, crie um para o locale pt_BR. Você pode criar um novo arquivo usando o Messages.properties e traduzindo as mensagens ou você pode pegar esse arquivo aqui , que está no cvs do myfaces.
Coloque ele na mesma estrutura de pacote javax.faces.Messages_pt_BR.properties
Ai na sua aplicação você muda o locale para pt_BR
javax.faces.context.FacesContext context = javax.faces.context.FacesContext.getCurrentInstance();
context.getViewRoot().setLocale(new java.util.Locale("pt", "BR"));
e pronto…
ce3po
Novembro 4, 2004, 11:17am
#3
Obrigado CODE, pela informação.
Eu resolvi fazendo o seguinte:
coloque no arquivo faces-config.xml o seguinte código:
<faces-config>
<application>
<!-- Vincula arquivo de mensagens -->
<message-bundle>mensagens</message-bundle>
</application>
....
melhorei o código JSP:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="jsf_h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="jsf_f"%>
<%@ taglib uri="http://myfaces.sourceforge.net/tld/myfaces_ext_0_9.tld" prefix="x"%>
<html>
<jsf_f:view>
<head>
<title>Teste com JSF</title>
<x:stylesheet path="/default.css" />
</head>
<body>
<jsf_f:loadBundle basename="mensagens" var="msg"/>
<jsf_h:form>
<jsf_h:outputText value="#{msg.campoValorA}" />
<jsf_h:inputText id="valorA" value="#{soma.valorA}" required="true"
validator="#{soma.validate}" />
<jsf_h:message id="erro1" styleClass="CABECALHO" for="valorA"/>
<br>
<jsf_h:outputText value="#{msg.campoValorB}" />
<x:inputText id="valorB" value="#{soma.valorB}" required="true"
validator="#{soma.validate}" />
<jsf_h:message id="erro2" styleClass="CABECALHO" for="valorB"/>
<br>
<jsf_h:commandButton id="OK" action="sucesso" value="OK" />
</jsf_h:form>
</body>
</jsf_f:view>
</html>
E gravei um arquivo chamado mensagem.properties no diretório
…WEB-INFclasses
Mas vou tentar a sua idéia também. VALEU.
Agradeço a sua idéia.
Até mais.
Fabrício Luis
http://www.ce3po.com
Sei que o post é antigo, mas precisei disso e achei uma solução bem mais simples e prática, para substituir a mensagem basta acrescentar o atributo “requiredMessage” no componente que deseja validar:
Ex:
<jsf_h:inputText id="valorA" value="#{soma.valorA}" required="true" validator="#{soma.validate}" requiredMessage="Campo obrigatório" />