Olá pessoal! boa tarde?
Irei descrever um problema estranho em uma pagina web que esta ocorrendo com um projeto (JSF+Hibernate+Tomahawk) que to desenvolvendo.
Bom, tenho um cadastro de documentos que deve incluir itens de produto nesse documento. Montei uma pagina para cadastar/listar esses itens no documento e funciona da seguinte maneira:
- o usuario escolhe o documento onde ira inserir os itens novos ai é aberto uma pagina que ja guarda o id referente a esse documento. Nessa pagina, a parte superior é um formulário de cadastro que salva/edita uma determinada informação, codigo abaixo;
...
<body>
<h:form id="form1">
<h3><h:outputText value="#{itemBean.documento.numero}"/> [Itens]</h3>
<h:commandButton action="#{itemBean.save}" value="Salvar"></h:commandButton>
<h:outputLink value="documento_listagem.jsf">Voltar</h:outputLink>
<br />
<h:inputHidden id="item" value="#{itemBean.model.oid}"/>
<h:inputHidden id="documento" value="#{itemBean.documento.oid}"/>
<table cellpadding="5" cellspacing="0" width="90%">
<tr>
<td style="width: 150px;"><h:outputText value="Produto principal:"/></td>
<td>
<h:selectOneMenu style="width: 400px;" value="#{itemBean.currentProduto}" required="true">
<f:selectItems value="#{produtoBean.comboProduto}"/>
</h:selectOneMenu>
</td>
</tr>
<tr>
<td><h:outputText value="Quantidade:"/></td>
<td>
<h:inputText id="quantidade" value="#{itemBean.model.qtd}" size="70" required="true" />
<h:message for="quantidade" style="color:red"/>
</td>
</tr>
<tr>
<td><h:outputText value="Quantidade atendida:"/></td>
<td>
<h:inputText id="quantidadeAtendida" value="#{itemBean.model.qtdAtendida}" size="70" required="true" />
<h:message for="quantidadeAtendida" style="color:red"/>
</td>
</tr>
<tr>
<td><h:outputText value="Valor unitario:"/></td>
<td>
<h:inputText id="valorUnitario" value="#{itemBean.model.valorUnitario}" size="70" required="true" />
<h:message for="valorUnitario" style="color:red"/>
</td>
</tr>
<tr>
<td><h:outputText value="CMU:"/></td>
<td>
<h:inputText id="cmu" value="#{itemBean.model.cmu}" size="70" required="true" />
<h:message for="cmu" style="color:red"/>
</td>
</tr>
</table>
<br />
<h:outputText value="#{requestScope.message}"></h:outputText>
<br />
</h:form>
....
- a parte inferior dessa pagina é um outro formulário que serve para listar o que ta sendo salvo acima ou o que ja estiver salvo. Essa listagem possui opções para deletar/editar o registro da linha referente;
....
<h:form id="form2" >
<h:dataTable value="#{itemBean.itens}" border="1" width="100%" var="item">
<h:column >
<f:facet name="header">
<h:outputText value="Produto" />
</f:facet>
<h:outputText value="#{item.produto.nome}"/>
</h:column>
<h:column >
<f:facet name="header">
<h:outputText value="Qtd" />
</f:facet>
<h:outputText value="#{item.qtd}"/>
</h:column>
<h:column >
<f:facet name="header">
<h:outputText value="Qtd atendida" />
</f:facet>
<h:outputText value="#{item.qtdAtendida}"/>
</h:column>
<h:column >
<f:facet name="header">
<h:outputText value="CMU" />
</f:facet>
<h:outputText value="#{item.cmu}"/>
</h:column>
<h:column>
<center>
<f:facet name="header">
<h:outputText value="Opcão"/>
</f:facet>
<h:commandLink value="Editar" action="editar" immediate="true">
<f:setPropertyActionListener value="#{item}" target="#{itemBean.model}"/>
</h:commandLink>
<h:outputText value=" - "/>
<h:commandButton value="Delete" actionListener="#{itemBean.delete}">
<f:param id="itemId" name="itemId" value="#{item.oid}" />
</h:commandButton>
</center>
</h:column>
</h:dataTable>
</h:form>
</body>
...
- Bom, até que a coisa ta funcionando direitinho, eu salvo e o registro novo ja aparece direitinho na listagem mas ai vem o problema, se nessa listagem gerada (onde existe as opções de editar e deletar) eu pedir para editar ou deletar um registro que ta la ai a pagina simplesmente é reimpressa sem nenhuma informação do banco.
- Um detalhe importante ai é que o bean não é ivocado, ou seja, quando eu pressiono o botão a tela é limpa e o action desse botão não é executado.
Não sei o que possa ser, gostaria que alguém me ajudasse com isso por favor.
Att,