Olá Pessoal,
comecei ontem a desenvolver uma aplicação usando JSF 2.0 (java.faces-2.1.7.jar) e Primefaces 3.0 (primefaces-3.1.1.jar) rodando em Tomcat 7.0.26. Não sei se é importante mencionar mas estou usando o Eclipse-Indigo para desenvolver esse pequeno projeto. Deveria ser simples mas não está sendo, ocorre que meus managed beans são achados no momento do parser do xhtml, e o conteúdo das propriedades é exibido, porém quando chamo um método o mesmo não é executado. A seguir demonstro o os arquivos de configuracao, e o cógigo fonte.
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>TesteWEB</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
</web-app>[/code]
[b]faces-config.xml[/b]
[code]<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
</faces-config>
ManagedBean
[code]package testeweb.run;
//import java.io.Serializable;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;
@ManagedBean(name=“autenticarForm”)
@ViewScoped
public class AutenticarForm implements Serializable{
/**
*
*/
@PostConstruct
public void inicializar() {
System.out.println("inicializar-"+this.getClass().getName());
nomeUsuario = "LUCIANO";
senhaAcesso = "TESTE";
}
@PreDestroy
public void finalizar() {
System.out.println("finalizar-"+this.getClass().getName());
}
private static final long serialVersionUID = 1L;
private String nomeUsuario;
private String senhaAcesso;
private String mensagem;
public void autenticarUsuario(ActionEvent actionEvent) {
System.out.println("Autenticar nome do usuário"+getNomeUsuario()+"/"+getSenhaAcesso());
}
public String getNomeUsuario() {
return nomeUsuario;
}
public void setNomeUsuario(String nomeUsuario) {
System.out.println(nomeUsuario);
this.nomeUsuario = nomeUsuario;
}
public String getSenhaAcesso() {
return senhaAcesso;
}
public void setSenhaAcesso(String senhaAcesso) {
this.senhaAcesso = senhaAcesso;
}
public String getMensagem() {
return mensagem;
}
public void setMensagem(String mensagem) {
this.mensagem = mensagem;
}
}
[/code]
Página de Login
[code]<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
template=“pagina.template”>
<ui:define name="AREA_UTIL">
<p:growl id="notificacao" showDetail="true" />
<p:panelGrid columns="2">
<f:facet name="header">
Autenticacao
</f:facet>
<h:outputLabel value="Nome Usuario: *" />
<p:inputText id="nomeUsuario" value="#{autenticarForm.nomeUsuario}"/>
<h:outputLabel value="Senha Acesso: *" />
<p:inputText id="senhaAcesso" value="#{autenticarForm.senhaAcesso}" required="true"/>
<f:facet name="footer">
<p:commandButton
type="button"
value="Autenticar"
icon="ui-icon-check"
actionListener="#{autenticarForm.autenticarUsuario}"
style="margin:0" update="notificacao"/>
</f:facet>
</p:panelGrid>
</ui:define>
</ui:composition>
[/code]
Caso haja necessidade colocar o código da página de template eu ponho.
Obrigado pela Ajuda.