E ai pessoal…
Estou com a seguinte dúvida…
Tenho uma aplicação que na hora de fazer o login faz uma validação no banco e caso o usuário esteja incorreto seta uma mensagem na tela no componente messages do PrimeFace… a questão é que minha aplicação é internacionalizada… a primeira pergunta é se está certo eu setar uma mensagem na tela do Controller e se sim, como coloco essa mensagem internacionalizada na tela via Controller?
Segue códigos:
login.jsf
[code]<h:form>
<p:messages id="messages" autoUpdate="true" />
<p:panelGrid columns="2">
<f:facet name="header">
#{i18n['login.panel.header']}
</f:facet>
<h:outputText value="#{i18n['login.user.label']}" />
<p:inputText id="user" value="#{loginController.user}" required="true" requiredMessage="#{i18n['login.user.required']}" />
<h:outputText value="#{i18n['login.password.label']}" />
<p:password id="password" value="#{loginController.password}" required="true" requiredMessage="#{i18n['login.password.required']}" feedback="false" />
<f:facet name="footer">
<p:commandButton value="#{i18n['login.submit.value']}" action="#{loginController.login}" icon="ui-icon-check" ajax="false" />
</f:facet>
</p:panelGrid>
</h:form>[/code]
LoginController.java
[code]/**
* Captura a sessão do contexto criado pelo JavaServer Faces
*/
FacesContext context = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
private String user;
private String password;
public String login() {
//TODO Puxar informações da database usuário .
if(user.equals("root") && password.equals("f13x@07*")) {
System.out.println("Usuário aceito ! ");
session.setAttribute("role", "adm");
return "logged";
} else {
System.out.println("Usuário inválido");
context.addMessage("messages", new FacesMessage(FacesMessage.SEVERITY_ERROR, "[MENSAGEM_TEM_QUE_VIR_AQUI]", "[MENSAGEM_TEM_QUE_VIR_AQUI]"));
}
return null;
}[/code]
Alguém pode me ajudar?
Abraços