Bom dia/tarde/noit madruga pessoal.
tenho uma duvida creio que bastate simples mas q nao consigo resolver, estou estudando jsf 2.0 com padrao DAO, sem hibernet, to tentado fazer um pequeno exemplo de cadastro no banco de dados apenas para fin didaticos, de principio consegui fazer o cadastro e persistir no banco de dados, porem ao se fazer um persistencia podemos ter dois tipos de mesagens, uma positiva e uma de erro, e é nessa hora que eu estou me embanando, eu coloquei duas tags de mensagens com ids diferentes cada uma para tratrar uma mensagem porem quando a mensagem volta do managem bean sendo erro ou nao a mensagem aparecem nas duas tags, sera que alguem poderia me ensinar por favor a como tratar mensagens em jsg2.0 ? para maiores explicações estou postando o codigo do meu managem e do xhtml abaixo:
xhtml
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>TODO supply a title</title>
</h:head>
<h:body>
<f:view>
<h:form id ="frmTeste">
<h:messages id="msgOK"/>
<h:panelGrid columns="2">
<h:outputText value="Codigo"/>
<h:inputText size="40" value="#{LivroBean.objLivro.id}"/>
<h:outputText value="Nome:"/>
<h:inputText id="txtNome" size="40" value="#{LivroBean.objLivro.autor}" required="true"/>
<h:commandButton id="salvar" value="submter" action="#{LivroBean.salvar}"/>
</h:panelGrid>
<h:messages id="msgErro"/>
</h:form>
</f:view>
</h:body>
</html>
o problema e que tanto msgErro, e msgOk retornam o mesmo valor ao mesmo tempo…
ManageBean
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.br.senasistemas.bean;
import com.br.senasistemas.modelo.Livro;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
/**
*
*@author Sil@s
*
*/
@ManagedBean(name = "LivroBean")
@RequestScoped
public class LivroBean
{
private Livro objLivro = new Livro();
public Livro getObjLivro() {
return objLivro;
}
public void setObjLivro(Livro objLivro) {
this.objLivro = objLivro;
}
public void salvar()
{
String vSalvar = objLivro.salvar();
if(vSalvar.equalsIgnoreCase("ok"))
{
FacesContext.getCurrentInstance().addMessage("frmTeste:msgOK", new FacesMessage("salvo!"));
}else{
FacesContext.getCurrentInstance().addMessage("frmTeste:msgErro", new FacesMessage(vSalvar));
}
}
}
desde de ja agradeço