Bom Dia Galera,
To com um probleminha e queria a ajuda de vocês.
Tenho um dataTable e dois dialog’s, ambos do primefaces.
Um dialog fica responsável por gravar os dados.
Outro dialog por editar e excluir os dados.
O dataTable fica responsável por listar os dados.
O dialog de inserção é um botão que quando clicado, chama o dialog.
O dialog para alterar e excluir é chamado quando o usuário clica em alguma linha do dataTable.
O problema:
Quando o usuário clica em adicionar, dá o seguinte erro:
javax.servlet.ServletException: javax.el.PropertyNotFoundException: /admin/gerenciar-departamentos.xhtml @92,138 value="#{departamentoMB.departamentoTemp.titulo}": Target Unreachable, 'departamentoTemp' returned null
Alguém sabe resolver esse erro?
O código do html:
<?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">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="/admin/Template/template.xhtml">
<ui:define name="corpo">
<h:head>
<title>Gerencie seus Departamentos</title>
</h:head>
<h:body>
<h:form id="form">
<table>
<tr>
<td>
<div id="barra_menuAcessoRapido">
<table>
<tr>
<td>
<p:commandButton value="Novo Departamento" onclick="dialog_novoDepartamento.show();" ajax="false" type="button"/>
</td>
</tr>
</table>
<p:dialog header="Novo Departamento" widgetVar="dialog_novoDepartamento" modal="true" height="270" width="400" resizable="false" showEffect="explode" hideEffect="explode" onCloseUpdate="panelGoup_dialog">
<h:panelGroup layout="block" id="panelGroup_novoDepartamento">
<table>
<tr>
<td><h:outputLabel value="Título" for="inputText_titulo" id="outputLabel_titulo"/></td>
<td><p:inputText value="#{departamentoMB.departamento.titulo}" id="inputText_titulo" size="58"/></td>
</tr>
<tr>
<td><h:outputLabel value="Tags" for="inputText_tags" id="outputLabel_tags"/></td>
<td><p:inputText value="#{departamentoMB.departamento.tags_meta}" id="inputText_tags" size="58"/></td>
</tr>
<tr>
<td><h:outputLabel value="Descrição" for="inputTextArea_descricao" id="outputLabel_descricao"/></td>
<td><p:inputTextarea value="#{departamentoMB.departamento.descricao_meta}" autoResize="false" cols="60" rows="7" id="inputTextArea_descricao"/></td>
</tr>
<tr>
<td></td>
<td><p:commandButton value="Salvar" actionListener="#{departamentoMB.salvar}" ajax="false"/></td>
</tr>
</table>
</h:panelGroup>
</p:dialog>
</div>
</td>
</tr>
</table>
<p:dataTable var="departamentos" id="dataTable_departamento" value="#{departamentoMB.listaDepartamentos}" paginator="true" rows="10" selection="#{departamentoMB.departamentoTemp}" selectionMode="single" onRowSelectUpdate="panelGroup_dialog" onRowSelectComplete="dialog_alterarDepartamento.show()">
<p:column sortBy="#{departamentos.id}" filterBy="#{departamentos.id}" >
<f:facet name="header">
<h:outputText value="Id" />
</f:facet>
<h:outputText value="#{departamentos.id}" />
</p:column>
<p:column sortBy="#{departamentos.titulo}" filterBy="#{departamentos.titulo}">
<f:facet name="header">
<h:outputText value="Título" />
</f:facet>
<h:outputText value="#{departamentos.titulo}" />
</p:column>
<p:column sortBy="#{departamentos.tags_meta}" filterBy="#{departamentos.tags_meta}">
<f:facet name="header">
<h:outputText value="SEO - Tags" />
</f:facet>
<h:outputText value="#{departamentos.tags_meta}" />
</p:column>
<p:column sortBy="#{departamentos.descricao_meta}" filterBy="#{departamentos.descricao_meta}">
<f:facet name="header">
<h:outputText value="SEO - Descrição" />
</f:facet>
<h:outputText value="#{departamentos.descricao_meta}" />
</p:column>
</p:dataTable>
<p:dialog header="Altere o Departamento" widgetVar="dialog_alterarDepartamento" modal="true" height="270" width="400" resizable="false" showEffect="explode" hideEffect="explode" onCloseUpdate="dataTable_departamento">
<h:panelGroup layout="block" id="panelGroup_dialog">
<table>
<tr>
<td><h:outputLabel value="Id" for="inputText_id" id="outputLabel_id"/></td>
<td><p:inputText value="#{departamentoMB.departamentoTemp.id}" id="inputText_id" size="5" readonly="true"/></td>
</tr>
<tr>
<td><h:outputLabel value="Título" for="inputText_titulo2" id="outputLabel_titulo2"/></td>
<td><p:inputText value="#{departamentoMB.departamentoTemp.titulo}" id="inputText_titulo2" size="58"/></td>
</tr>
<tr>
<td><h:outputLabel value="Tags" for="inputText_tags2" id="outputLabel_tags2"/></td>
<td><p:inputText value="#{departamentoMB.departamentoTemp.tags_meta}" id="inputText_tags2" size="58"/></td>
</tr>
<tr>
<td><h:outputLabel value="Descrição" for="inputTextArea_descricao2" id="outputLabel_descricao2"/></td>
<td><p:inputTextarea value="#{departamentoMB.departamentoTemp.descricao_meta}" autoResize="false" cols="60" rows="7" id="inputTextArea_descricao2"/></td>
</tr>
</table>
<table>
<tr>
<td><p:commandButton value="Alterar" actionListener="#{departamentoMB.alterar}" ajax="false"/></td>
<td><p:commandButton value="Excluir" actionListener="#{departamentoMB.excluir}" ajax="false"/></td>
</tr>
</table>
</h:panelGroup>
</p:dialog>
</h:form>
</h:body>
</ui:define>
</ui:composition>
</html>