Não consigo editar meu objeto - JSF com PRIMEFACES

2 respostas
jsfprimefaceshibernatejava
Dayson_Rodrigues

Estou com dataTable, e quando quero editar um objeto sou encaminhado para minha pagina para alterar, só que o não recupera o objeto para fazer a alteração.

Quando vou editar o objeto minha URL recupera o ID, mais não aparece os valores. Minha URL vai para outra pagina com o seguinte URL: http://localhost:8080/irmao_Suspension/fabricante/cadastroFabricante.xhtml?modelo.Fabricante@2f=16 Então eu acho que recuperou o Objeto, verifiquei o codigo da linha selecionada que no caso é 16

A coluna é Editar/ Excluir

<ui:define name=“corpo”>
<f:metadata>
<f:viewAction action="#{consultaFabricante.inicializa}" />
</f:metadata>

<h1>Pesquisa de Fabricantes</h1>
	
	<h:form id="frmPesquisa">
		<p:messages id="messages" autoUpdate="true" closable="true" />

		<p:toolbar style="margin-top: 20px">
			<p:toolbarGroup>
				<p:button value="Novo"  />
			</p:toolbarGroup>
		</p:toolbar>
	
    	<p:dataTable id="fabricantesTable" value="#{consultaFabricante.fabricantes}" var="fabricante"
	    		style="margin-top: 20px" emptyMessage="Nenhum fabricante encontrado." rows="20"
	    		paginator="true" paginatorAlwaysVisible="false" paginatorPosition="bottom">
	    		<p:column headerText="Código" style="text-align: center; width: 100px">
	    			<h:outputText value="#{fabricante.codigo}" />
	    		</p:column>
	    		<p:column headerText="Nome">
	    			<h:outputText value="#{fabricante.nome}" />
	    		</p:column>
	    		<p:column style="width: 100px; text-align: center" headerText="Editar / Excluir">
	    			<p:button outcome="cadastroFabricante" icon="ui-icon-pencil" title="Editar">
	    				<f:param name="#{fabricante}" value="#{fabricante.codigo}"/>
	    			</p:button>
	    			<p:commandButton icon="ui-icon-trash" title="Excluir" oncomplete="PF('confirmacaoExclusao').show()"
							process="@this" update=":frmPesquisa:confirmacaoExclusaoDialog">
						<f:setPropertyActionListener value="#{consultaFabricante.fabricanteSelecionado}" target="#{fabricante}" />
					</p:commandButton>
	    		</p:column>
	    </p:dataTable>
	    
	    <p:confirmDialog id="confirmacaoExclusaoDialog" widgetVar="confirmacaoExclusao"
        		message="Tem certeza que deseja excluir o fabricante "  header="Exclusão de fabricante" severity="alert">
        	<p:button value="Não" onclick="PF('confirmacaoExclusao').hide(); return false;" />
        	<p:commandButton value="Sim" update=":frmPesquisa:fabricantesTable"	oncomplete="PF('confirmacaoExclusao').hide()" 
        					 action="#{consultaFabricante.excluir}" />
    	</p:confirmDialog>
    </h:form>
</ui:define>

</ui:composition>

Pagina que atualiza, mais não aparece os valores.
<ui:define name=“corpo”>
<f:metadata>
<f:viewParam name="#{fabricante}" value="#{cadastroFabricanteBean.fabricante}" />
<f:viewAction action="#{cadastroFabricanteBean.inicializar}" />
</f:metadata>

<h1>Cadastro de Fabricante</h1>

	<h:form id="frmCadastro">
		<p:messages id="messages" autoUpdate="true" closable="true" />

		<p:toolbar style="margin-top: 20px">
			<p:toolbarGroup>
				<p:commandButton value="Salvar"
					action="#{cadastroFabricanteBean.salvar}" id="botaoSalvar"
					update="frmCadastro" />
			</p:toolbarGroup>
			<p:toolbarGroup align="right">
				<p:button value="Pesquisa" outcome="pesquisaFabricante" />
			</p:toolbarGroup>
		</p:toolbar>

		<p:panelGrid columns="2" id="painel"
			style="width: 100%; margin-top: 20px" columnClasses="rotulo, campo">
			<p:outputLabel value="Código" for="codigo" />
			<p:inputText id="codigo"
				value="#{cadastroFabricanteBean.fabricante.codigo}" size="20"
				maxlength="20" readonly="true" />

			<p:outputLabel value="Nome" for="nome" />
			<p:inputText id="nome"
				value="#{cadastroFabricanteBean.fabricante.nome}" size="60"
				maxlength="80" />

		</p:panelGrid>
	</h:form>
</ui:define>

</ui:composition>

2 Respostas

hugocfonseca

Cara, acho que seu problema seja aqui:

<f:param name="#{fabricante}" value="#{fabricante.codigo}"/>

Vc só está passando o código como parâmetro, logo vc só vai conseguir recuperar o código… eu só n tenho certeza se vc vai conseguir passar o obj, ou terá que dar um findById pra buscar os dados dele depois!

Dayson_Rodrigues

pois é to seguindo uma video aula aqui, está igual não sei o que está acontecendo.

Criado 27 de fevereiro de 2017
Ultima resposta 28 de fev. de 2017
Respostas 2
Participantes 2