Bom dia galera, estou com uma dúvida, tenho um form para persistir nome e email, esse campos são validados com jsf, richfaces e hibernate-validator, até ai blz, mas queria mostrar um modalpane do richfaces com as mensagem se foi gravado com sucesso ou não, ou seja, como, onde e como tratar isso, pensei em receber a respo do bean java numa tag dentro do javascript, bom ta ai meu código de testes.
Valeu galera
<script type="text/javascript">
function funcao(){
if(document.forms['newsletter'].elements['newsletter:button'].value == true){
alert('TESTE!!!');
}
}
</script>
<a4j:form id="newsletter" onsubmit="funcao()">
<h:inputText id="nome" size="19" value="#{EmailInformativoMB.nome}" class="input1_lateral_emailinformativo" required="true" requiredMessage="O Nome é requerido" />
<h:inputText id="email" size="19" value="#{EmailInformativoMB.email}" class="input2_lateral_emailinformativo" required="true" requiredMessage="O Email é requerido">
<rich:beanValidator event="onblur" />
</h:inputText>
<a4j:commandButton id="button" image="images/newsletter/botao_ok.jpg" action="#{EmailInformativoMB.cadastrarEmailInformativo}" />
<rich:message for="nome" /><br />
<rich:message for="email" /><br /><br />
</a4j:form>
Bean java
package com.as.commerce.mb;
import com.as.commerce.controller.EntityManagerFactorySingleton;
import com.as.commerce.dao.EmailInformativoDAO;
import com.as.commerce.model.EmailInformativo;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import org.hibernate.validator.Email;
public class EmailInformativoMB {
private String nome;
@Email
private String email;
private EmailInformativo emailInformativo;
private EmailInformativoDAO emailInformativoDAO;
private EntityManager em;
public EmailInformativoMB() {
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public void cadastrarEmailInformativo() {
try {
//inicializa o manager
em = EntityManagerFactorySingleton.getEntityManager();
//inicia a sessao
em.getTransaction().begin();
//cria o objeto que vai ser persistido
emailInformativo = new EmailInformativo();
emailInformativo.setNome(nome);
emailInformativo.setEmail(email);
//Cria o DAO
emailInformativoDAO = new EmailInformativoDAO(em);
//Persiste o Objeto
emailInformativoDAO.create(emailInformativo);
//Comita a transação
em.getTransaction().commit();
} catch (Exception ex) {
//Volta a transação
em.getTransaction().rollback();
System.out.println(ex.getStackTrace());
} finally {
FacesContext.getCurrentInstance().addMessage(nome, new FacesMessage("Email Enviado com sucesso!"));
//em qualquer hipotese fecha o manager
//em.close();
}
}
}
Abraços!!!