Olá!
tenho duas páginas jsf que seguem um template.
A tag do form está declarada no template.
O que acontece é o seguinte: Numa das páginas, existe um cadastro. Esta página funciona perfeitamente.
Na página em que estou trabalhando agora, é uma página onde o cara vai preencher dois campos e apertar o botão, porém, este botão não faz nada. O método do MB não é chamado.
O que eu achei mais estranho de tudo, é que na mesma página eu tenho um outro botão mais abaixo que funciona normalmente…
Segue o código do template e da página problemática pra vcs darem uma olhada:
template:
<?xml version="1.0" encoding="UTF-8"?>
<!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"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<h:outputStylesheet name="../resources/css/style.css" />
<title>e-Champs</title>
<h:outputScript name="../resources/js/primefaces-locales.js" />
</h:head>
<h:body>
<h:form id="principal">
<table border="0" width="1000" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2">
<ui:insert name="header"></ui:insert>
</td>
</tr>
<tr>
<td colspan="2">
<ui:insert name="menu"></ui:insert>
</td>
</tr>
<tr></tr>
<tr>
<td colspan="2" height="5" class="bgcor"></td>
</tr>
<tr>
<td class="bgcor">
<ui:insert name="body"></ui:insert>
</td>
</tr>
<tr></tr>
<tr>
<td colspan="2">
<ui:insert name="footer"></ui:insert>
</td>
</tr>
</table>
</h:form>
</h:body>
</html>
pagina bugada:
<ui:composition template="templateuser.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:define name="header">
<ui:include src="../bannertop.xhtml"/>
</ui:define>
<ui:define name="menu">
<ui:include src="../menubar.xhtml"/>
</ui:define>
<ui:define name="body">
<table align="center" height="250">
<tr>
<td align="center">
<p:messages id="mensagens" showDetail="true"/>
<p:panelGrid columns="2">
<f:facet name="header">
Efetue seu Login
</f:facet>
<h:outputLabel for="usuario" value="Usuário:" />
<p:inputText id="usuario" value="#{loginUsuarioMB.login}" label="Usuário" style="width: 200px"/>
<h:outputLabel for="senha" value="Senha:" />
<p:password id="senha" value="#{loginUsuarioMB.senha}" label="Senha" style="width: 200px"/>
<f:facet name="footer">
<p:commandButton type="button"
value="Login"
icon="ui-icon-check"
style="margin:0"
update=":principal:mensagens"
actionListener="#{loginUsuarioMB.logar}"/>
</f:facet>
</p:panelGrid>
</td>
</tr>
<tr>
<td>
<p class="textobody" align="center">Ainda não é Cadastrado?<br/>
<p:commandButton value="Cadastre-se aqui"
action="#{loginUsuarioMB.redirecionarCadastro}"/>
</p>
</td>
</tr>
</table>
</ui:define>
<ui:define name="footer">
Eu sou apenas o rodapé =/
</ui:define>
</ui:composition>
o botão com actionListener=#{loginUsuarioMB.logar} não funciona…
já o botão com action=#{loginUsuarioMB.redirecionarCadastro} funciona…
O método “logar” recebe o parâmetro ActionEvent do faces…