Problemas com primefaces

Olá senhores, estou montando um projeto com primefaces 3.5 e estou tendo muita dor de cabeça.
Seguinte, preciso cadastrar e listar os produtos. Além disso, devo disponibilizar os botões para detalhar o produto, editar e excluir.
Utilizo o código abaixo na xhtml:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">

<f:loadBundle var="msg" basename="properties.messages"/>

<h:head>
	<f:metadata>
		<f:event listener="#{produtoBean.listarProdutos}" type="preRenderView"/>
	</f:metadata>
</h:head>
<h:body style="font-size: 10px;">
	<h:form id="form">
		<p:growl id="msgs" showDetail="true" />		
		<p:dataTable id="produtos" var="produto" value="#{tableBean.produtos}" style="font-size: 10px;">
			<p:column headerText="#{msg.codigo}" style="width: 4%">
				<h:outputText value="#{produto.id}" />
			</p:column>
			<p:column headerText="Nomr" style="width:24%">
				<h:outputText value="#{produto.nome}" />
			</p:column>
			<p:column headerText="Descrição" style="width:24%">
				<h:outputText value="#{produto.descricao}" />
			</p:column>
			<p:column headerText="Fornecedor" style="width:24%">
				<h:outputText value="#{produto.fornecedor}" />
			</p:column>
			<p:column headerText="Data Fabricação" style="width:24%">
				<h:outputText value="#{produto.dataFabricacao}" />
			</p:column>
			<p:column style="width:4%">
				<p:commandButton id="selectButton" update=":form:display" oncomplete="produtoDialog.show()" icon="ui-icon-search" title="View">
					<f:setPropertyActionListener value="#{produto}" target="#{produtoBean.selectedProduto}" />
				</p:commandButton>
				<p:commandButton id="editButton" update=":form:displayEdit" oncomplete="editarProdutoDialog.show()" icon="ui-icon-pencil" title="View">
					<f:setPropertyActionListener value="#{produto}" target="#{produtoBean.selectedProduto}" />
				</p:commandButton>
			</p:column>

		</p:dataTable>

		<p:dialog header="#{msg.detalhes}" widgetVar="produtoDialog" resizable="true" id="produtoDlg"
			 modal="true" closeOnEscape="true" closable="true">
			<h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;">
				<h:outputText value="#{msg.codigo}" />
				<h:outputText value="#{produtoBean.selectedProduto.id}" style="font-weight:bold" />
				
				<h:outputText value="#{msg.nome}" />
				<h:outputText value="#{produtoBean.selectedProduto.nome}" style="font-weight:bold" />

				<h:outputText value="Descrição: " />
				<h:outputText value="#{produtoBean.selectedProduto.descricao}" style="font-weight:bold" />

				<h:outputText value="#{msg.categoria}" />
				<h:outputText value="#{produtoBean.selectedProduto.categoria}" style="font-weight:bold" />

				<h:outputText value="Fornecedor: " />
				<h:outputText value="#{produtoBean.selectedProduto.fornecedor}" style="font-weight:bold" />

				<h:outputText value="Data de Fabricação: " />
				<h:outputText value="#{produtoBean.selectedProduto.dataFabricacao}" style="font-weight:bold">
					<f:convertDateTime pattern="dd/MM/yyyy"/>
				</h:outputText>

				<h:outputText value="Data de Vencimento: " />
				<h:outputText value="#{produtoBean.selectedProduto.dataVencimento}" style="font-weight:bold">
					<f:convertDateTime pattern="dd/MM/yyyy"/>
				</h:outputText>

				<h:outputText value="Preço Venda (R$) " />
				<h:outputText value="#{produtoBean.selectedProduto.precoCompra + (produtoBean.selectedProduto.precoCompra * produtoBean.selectedProduto.percentualLucro / 100)}" style="font-weight:bold" />

			</h:panelGrid>
		</p:dialog>
	
		<p:dialog header="#{msg.editar}" widgetVar="editarProdutoDialog" resizable="true" id="editarProdutoDlg"
			 modal="true" closeOnEscape="true" closable="true">
			<h:panelGrid id="displayEdit" columns="2" cellpadding="4" style="margin:0 auto;">
				<h:outputText value="#{msg.codigo}" />
				<h:outputText value="#{produtoBean.selectedProduto.id}" style="font-weight:bold" />
				
				<h:outputText value="#{msg.nome}" />
				<h:outputText value="#{produtoBean.selectedProduto.nome}" style="font-weight:bold" />

				<h:outputText value="Descrição: " />
				<h:outputText value="#{produtoBean.selectedProduto.descricao}" style="font-weight:bold" />

				<h:outputText value="#{msg.categoria}" />
				<h:outputText value="#{produtoBean.selectedProduto.categoria}" style="font-weight:bold" />

				<h:outputText value="Fornecedor: " />
				<h:outputText value="#{produtoBean.selectedProduto.fornecedor}" style="font-weight:bold" />

				<h:outputText value="Data de Fabricação: " />
				<h:outputText value="#{produtoBean.selectedProduto.dataFabricacao}" style="font-weight:bold">
					<f:convertDateTime pattern="dd/MM/yyyy"/>
				</h:outputText>

				<h:outputText value="Data de Vencimento: " />
				<h:outputText value="#{produtoBean.selectedProduto.dataVencimento}" style="font-weight:bold">
					<f:convertDateTime pattern="dd/MM/yyyy"/>
				</h:outputText>

				<h:outputText value="Preço Venda (R$) " />
				<h:outputText value="#{produtoBean.selectedProduto.precoCompra + (produtoBean.selectedProduto.precoCompra * produtoBean.selectedProduto.percentualLucro / 100)}" style="font-weight:bold" />

			</h:panelGrid>

		</p:dialog>

	</h:form>
</h:body>
</html>

Ocorre que, como notaram, os dois p:dialog estão fazendo a mesma coisa.
Porém, se insiro qualquer p:inputText, nenhum botão consegue trazer o objeto selecionado…

Alguém tem alguma dica?

Edit:

A situação está mais complexa que imaginei. Qualquer coisa que eu altere, incluindo os values, afetam o comportamento.
Como resovler?

Utilize forms individuais. [=

Valeu, vou tentar aqui…