Boa tarde amigos, Gostaria que me ajudasse a solucionar um problema, pois bem, tenho um Bean onde quero mostra um mensagem simples no console, porem o index.xhtml não dispara o método que ta em um bean.
Eis os códigos:
index.xhtml
<?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"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"><h:head><title>Facelet Title</title></h:head><h:body><h:form><h:commandButtonvalue="Mostrar"action="#{classpai.mostra}"></h:commandButton>
Testando <h1>JSF</h1></h:form></h:body></html>
Classpai.java :
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packagecom.classe;importjavax.faces.bean.ManagedBean;importjavax.faces.bean.SessionScoped;/** * * @author Desen06 */@ManagedBean@SessionScopedpublicclassclasspai{publicStringnome;publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicvoidmostra(){System.out.println("executou");}}
Então o sistema sobe normalmente, e quando clico no Botãoo MOSTRAR não acontece nada.
Seu método ‘mostra’, e todo método que é acionado pela página xhtml precisa obrigatoriamente retornar uma String. Essa string deve ser o nome da página que será exibida após o método ser processado.
Se você quer retornar para a mesma página, ficaria assim:
public String mostra(){
System.out.println("executou");
return "index";
}
dofun12
Tente mudar o <h:commandButton value="Mostrar" action="#{classpai.mostra}"></h:commandButton>
para <h:commandButton value="Mostrar" actionListener="#{classpai.mostra}" />
e na Classe pai tenta colocar a annotation @ManagedBean(name="classpai")
hmsilva
warquia,
Eu fiz uma POC como a sua e o meu metodo mostrar foi chamado e o texto "Passei aqui !!!" foi printado na tela.
Segue: