Bom dia Galera,
Estou utilizando NetBeans 6.9.1, GlassFish 3.1, Primefaces 3.4.1, JSF 2.0
Já procurei e revirei o forum e não achei nada que resolvesse o meu problema…
Li sobre forms aninhados, mas não estou usando form no meu template/menu/cabecalho, uso <h:form> apenas no conteudo.
Criei uma página simples, que o usuário informa 1 valor, clica no gravar e grava…
Eu criei as páginas a parte tudo estava funcionando perfeitamente…
Criei um Template… foi onde parou de funcionar…
A Mesma página funciona sem o Template perfeitamente!
O unico item que da erro é o Ajax, dentro do Dialog, no Input Text.
Tenho Ajax em Combos, Checks, utilizo um DataTable tambem, tudo funciona perfeitamente, exceto o InputText…
E se eu removo o Ajax do Input e deixo apenas no Value e removo o Ajax do botão gravar, também não funciona.
Não sei mais o que pode ser, espero que me ajudem!!!
Desde já, obrigado!!!
Segue exemplo do meu código:
TEMPLATE:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Gerenciamento Inventario</title>
</h:head>
<h:body>
<p:ajaxStatus rendered="true" onstart="statusDialog.show()" oncomplete="statusDialog.hide()" onerror="statusDialog.hide()" onsuccess="statusDialog.hide()">
<p:dialog modal="true" widgetVar="statusDialog" header="Aguarde..."
draggable="false" closable="false" resizable="false">
<h:outputText value="Por favor aguarde..."/>
<br></br>
<h:graphicImage value="Imagens/ajax-loader.gif" />
</p:dialog>
</p:ajaxStatus>
<p:growl id="messages" showDetail="true" sticky="true" autoUpdate="true"/>
<p:layout fullPage="true">
<p:layoutUnit position="north" size="100" resizable="false"
closable="false" collapsible="true">
<ui:include src="/WEB-INF/Paginas/cabecalho.xhtml"/>
</p:layoutUnit>
<p:layoutUnit position="south" size="30" resizable="false"
closable="false" collapsible="true">
</p:layoutUnit>
<p:layoutUnit position="west" size="200" resizable="false"
closable="false" collapsible="true" effect="drop">
<ui:include src="menu.xhtml"/>
</p:layoutUnit>
<p:layoutUnit position="center" >
<ui:insert name="conteudo"/>
</p:layoutUnit>
</p:layout>
</h:body>
</html>
MENU:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:body>
<p:menu style="width:180px">
<p:menuitem value="Alterar" url="VisualizacaoInventario_Template.jsf"/>
</p:menu>
</h:body>
</html>
CABECALHO:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<style type="text/css">
/*demo page css*/
body{ font: 82.5% "Trebuchet MS", sans-serif; margin: 5px;}
.demoHeaders { margin-top: 0em; }
#dialog_link {padding: .4em 1em .4em 20px;text-decoration: none;position: relative;}
#dialog_link span.ui-icon {margin: 0 5px 0 0;position: absolute;left: .2em;top: 50%;margin-top: 0px;}
ul#icons {margin: 0; padding: 0;}
ul#icons li {margin: 2px; position: relative; padding: 4px 0; cursor: pointer; float: left; list-style: none;}
ul#icons span.ui-icon {float: left; margin: 0 4px;}
</style>
</h:head>
<h:body>
<center>
<p:graphicImage value="Imagens/logo.png" style="width:30%"/>
</center>
</h:body>
</html>
Minha JSF Com Problema de Ajax:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:head>
</h:head>
<ui:composition template="template.xhtml" >
<ui:define name="conteudo">
<h:form id="form">
<p:tabView id="tabView" dynamic="true" cache="true" >
<p:tab id="tba1" title="Visualizacao do Inventario">
<p:commandButton value="Corrigir Registro Manualmente" id="btnSalvarRegistros" update="alteracaoValor" oncomplete="dialogAlteracao.show()" />
<p:dialog id="dialogAlterarValor" header="Alteracao de Valor" widgetVar="dialogAlteracao" appendToBody="true"
showEffect="fade" hideEffect="explode" resizable="false" modal="true" width="250">
<p:inputText id="txtNovoValor" value="#{visualizacaoInventario.novoValorContagem}" >
<!-- AQUI ESTA O PROBLEMA... O MESMO AJAX IDENTICO SEM O TEMPLATE FUNCIONA, O GET() FUNCIONA, MAS O SETTER NAO -->
<p:ajax listener="#{visualizacaoInventario.novoValorContagem}" />
</p:inputText>
<p:separator/>
<p:commandButton value="Gravar" style="width: 100px" actionListener="#{visualizacaoInventario.alterarValorContagem}" oncomplete="dialogAlteracao.hide()" />
<p:commandButton style="width: 100px" value="Cancelar" onclick="dialogAlteracao.hide()" type="button" />
</center>
</p:dialog>
</p:tab>
</p:tabView>
</h:form>
</ui:define>
</ui:composition>
</html>
BEAN:
@ManagedBean
@ViewScoped
public class VisualizacaoInventario { //
private int novoValorContagem;
public int getNovoValorContagem() {
return novoValorContagem;
}
public void setNovoValorContagem(int novoValorContagem) {
this.novoValorContagem = novoValorContagem;
}
public void alterarValorContagem(ActionEvent acitonEvent) {
PreparedStatement stmt;
StringBuilder sql = new StringBuilder();
try {
int usuario = 0;
sql.append(" update tb_pocket_contagem set cont_qtde_apur =?");
stmt = conn.prepareStatement(sql.toString());
stmt.setInt(1, getNovoValorContagem());
stmt.executeUpdate();
stmt.close();
} catch (SQLException ex) {
}
}
}
Erro disparado no Glassfish:
AVISO: PWC4011: Unable to set request character encoding to UTF-8 from context /LyncisWeb_Saraiva_Etico, because request parameters have already been read, or ServletRequest.getReader() has already been called
AVISO: Method not found: [email removido](javax.faces.event.AjaxBehaviorEvent)
javax.el.MethodNotFoundException: Method not found: [email removido](javax.faces.event.AjaxBehaviorEvent)
at com.sun.el.util.ReflectionUtil.getMethod(ReflectionUtil.java:155)
at com.sun.el.parser.AstValue.invoke(AstValue.java:231)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at org.primefaces.component.behavior.ajax.AjaxBehaviorListenerImpl.processAjaxBehavior(AjaxBehaviorListenerImpl.java:47)
at javax.faces.event.AjaxBehaviorEvent.processListener(AjaxBehaviorEvent.java:113)
at javax.faces.component.behavior.BehaviorBase.broadcast(BehaviorBase.java:98)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:763)
at javax.faces.component.UIData.broadcast(UIData.java:912)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:662)
GRAVE: javax.faces.FacesException: Method not found: [email removido](javax.faces.event.AjaxBehaviorEvent)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:90)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:662)
Caused by: javax.el.MethodNotFoundException: Method not found: [email removido](javax.faces.event.AjaxBehaviorEvent)
at com.sun.el.util.ReflectionUtil.getMethod(ReflectionUtil.java:155)
at com.sun.el.parser.AstValue.invoke(AstValue.java:231)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at org.primefaces.component.behavior.ajax.AjaxBehaviorListenerImpl.processAjaxBehavior(AjaxBehaviorListenerImpl.java:47)
at javax.faces.event.AjaxBehaviorEvent.processListener(AjaxBehaviorEvent.java:113)
at javax.faces.component.behavior.BehaviorBase.broadcast(BehaviorBase.java:98)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:763)
at javax.faces.component.UIData.broadcast(UIData.java:912)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
… 27 more
Mais uma vez, me ajudem !!! Obrigado!!!