[RESOLVIDO]Requisição JSF não chama get/set do controller
9 respostas
L
leorbarbosa
Pessoal,
quando faço uma requisição jsf, os atributos da minha classe que estão no controller não estão sendo ‘settados’ com os valores que preenchi na tela. Por exemplo, abaixo a listagem na qual eu deveria armazenar o ID do chamado ‘controller.chamado.id’
<h:outputTextvalue="Tipo de chamado"/><h:selectOneMenustyleClass="inputRequerido"id="tipo"value="#{controller.chamado.id}"required="true"><f:selectItemitemLabel="-- Selecione o tipo de chamado -- "itemValue="-1"/><f:selectItemsvalue="#{daoListar.todos}"var="item"itemLabel="#{item.descricao}"itemValue="#{item.id}"/></h:selectOneMenu>
Só que quando vou capturar os valores com ‘get…’, está vindo ‘zero’ que é o default, só que o JSF está barrando (como deveria).
try {
con = conexao;
pst = con.prepareStatement(sql);
pst.setInt(1, chamado.getIdTipoChamado());
Em algum ponto não está havendo a ligação do meu objeto local do controller com os atributos da tela(jsf) de cadastro. No ‘controller’ conforme abaixo, instancio o bean logo quando chamo cadastro.
O jsf nem aciona o submit, tãopouco renderiza a resposta. Para na validação o logo que o click é dado.
H
Hebert_Coelho
Tem como postar a página toda?
L
leorbarbosa
Não gosto de mandar a página toda pois fica difícil de ler, mas acho que está pequena:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"xmlns:ui="http://java.sun.com/jsf/facelets"xmlns:f="http://java.sun.com/jsf/core"><head><title>.: HelpDesk - Novo Chamado :.</title><linkrel="stylesheet"type="text/css"href="css/formEdicao.css"/></head><h:body><ui:includesrc="templates/cabecalho.xhtml"/><f:view><h:formid="edicao"><h:panelGridfooterClass="alinhaRodape"columns="2"style="background-color: beige; border-width: 1px; border-style: solid; border-color: silver;margin-left: 15px;font-family: verdana, arial; font-size: 11px; font-weight: bold;"><f:facetname="header"><h:outputTextvalue="Abrindo um novo chamado"/></f:facet><h:outputTextvalue="Tipo de chamado"/><h:selectOneMenustyleClass="inputRequerido"id="tipoChamado"value="#{controllerChamado.chamado.idTipoChamado}"required="true"><f:selectItemitemLabel="-- Selecione o tipo de chamado -- "itemValue="-1"/><f:selectItemsvalue="#{daoTipoChamado.todos}"var="item"itemLabel="#{item.descricao}"itemValue="#{item.idTipoChamado}"/></h:selectOneMenu><h:outputTextvalue="Quem está solicitando"/><h:inputTextstyleClass="inputRequerido"size="50"maxlength="100"id="quemSolicitou"value="#{controllerChamado.chamado.quemSolicitou}"required="true"/><h:outputTextvalue="Data de criação"/><h:inputTextstyleClass="inputRequerido"size="16"maxlength="16"id="dtCriacao"value="#{controllerChamado.chamado.dtCriacao}"readonly="true"/><h:outputTextvalue="Observação"/><h:inputTextarearows="5"cols="100"styleClass="inputOpcional"id="obs"value="#{controllerChamado.chamado.obs}"/><f:facetname="footer"><h:commandButtonvalue="Gravar"action="#{controllerChamado.create}"/></f:facet></h:panelGrid></h:form></f:view><ui:includesrc="templates/rodape.xhtml"/></h:body></html>
H
Hebert_Coelho
Primeiro tente trocar de head para h:head.
Caso não funcione, post aí o método que o botão create ta chamando.
Agora é que não entendi nada, na primeira tentativa de gravar para na validação do JSF. Na segunda tentativa passa na validação e chama o método acima. Só que a instância ‘this.chamado’ está com os atributos nulos, e dá erro de SQL no INSERT.
:?:
H
Hebert_Coelho
Tenta sem o throws Exception.
Seu managedBean está com qual escopo?
L
leorbarbosa
Escopo de sessão,…
L
leorbarbosa
Valeu pela força,
passou despercebido o debug da app:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)