tiago_
Abril 23, 2013, 5:36pm
#1
Pessoal, estou utilizando o commandLink + setPropertyActionListener p abrir outra pagina. Ja fiz isso antes e tava funcionando perfeitamente…
Mas agora nao quer abrir a tal pagina… A unica coisa q acontece eh carregar a mesma pagina.
edit: ja coloquei o nome d um metodo q nao existe no action do commandLink e nada acontece… resultado: o commandLink nao esta sendo executado
<h:dataTable value="#{requisicaoBean.reqMoviItem}" var="req" rules="rows" cellpadding="5" >
<f:facet name="caption">
</f:facet>
<f:facet name="header">Lista de itens</f:facet>
<f:facet name="footer">Final da listagem</f:facet>
<h:column>
<f:facet name="header">#R</f:facet>
<h:outputText value="#{req.codigoRequisicao}" />
</h:column>
<h:column>
<f:facet name="header">Item</f:facet>
#{req.nomeItem}
</h:column>
<h:column>
<f:facet name="header">Qntd Solicitada</f:facet>
#{req.quantidadeSolicitada}
</h:column>
<h:column>
<f:facet name="header">Qntd Atendida</f:facet>
#{req.quantidadeAtendida}
</h:column>
<h:column>
<h:commandLink action="#{requisicaoBean.editarItem}" immediate="true" >
<h:graphicImage library="imagens" name="editar16.png" />
<f:setPropertyActionListener target="#{requisicaoBean.codigoRequisicao}" value="#{req.codigoRequisicao}"/>
<f:setPropertyActionListener target="#{requisicaoBean.destinoSalvarItem}" value="pages/vip/movimentacao_item"/>
</h:commandLink>
</h:column>
</h:dataTable>
public String editarItem() {
return "/pages/vip/movimentacao_item";
}
Pagina q deveria abrir:
[code]Movimentação
</ui:define>
<ui:define name=“corpo”>
<h:form id=“cadastro”>
<h:messages />
<h:inputHidden value="#{requisicaoBean.codigoRequisicao}" />
<h:panelGrid columns="2">
<h:outputLabel value="Item:" for="nomeItem" />
<h:inputText id="nomeItem" label="NomeItem"
value="#{requisicaoBean.nomeItem}"
required="true" style="background-color:#F5F5F5" disable="true" readonly="true"/>
<h:outputLabel value="Quantidade Solicitada:" for="quantidadeSolicitada" />
<h:inputText id="quantidadeSolicitada" label="quantidadeSolicitada" size="4"
value="#{requisicaoBean.quantidadeSolicitada}"
style="background-color:#F5F5F5" disable="true" readonly="true" />
<h:outputLabel value="Quantidade Atendida:" for="quantidadeAtendida" />
<h:inputText id="quantidadeAtendida" label="quantidadeAtendida" size="4"
value="#{requisicaoBean.quantidadeAtendida}"/>
<h:outputText value="Status:"/>
<h:selectOneMenu value ="#{requisicaoBean.status}">
<f:selectItem itemLabel="Selecione:" itemValue=""/>
<f:selectItems
value="#{requisicaoBean.listarNomeStatus}"
var ="listarNomesStatus"
itemValue="#{listarNomesStatus}"
itemLabel="#{listarNomesStatus}"/>
</h:selectOneMenu>
<br/>
<br/>
<h:commandButton action="#{requisicaoBean.atualizarRequisicao}" value="Atualizar" />
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
[/code]
pra que vc está utilizando isso:
<f:setPropertyActionListener target="#{requisicaoBean.destinoSalvar}" value="pages/vip/movimentacao_item"/> ???
Tendo em vista que seu método está retornando a url da próxima pagina.
tiago_
Abril 23, 2013, 7:04pm
#3
[quote=kleberdamasco]pra que vc está utilizando isso:
<f:setPropertyActionListener target="#{requisicaoBean.destinoSalvar}" value="pages/vip/movimentacao_item"/> ???
Tendo em vista que seu método está retornando a url da próxima pagina.[/quote]
Sempre fiz desse jeito e sempre funcionou. Aprendi isso no livro “java para web”
Vc faria de q jeito ?
se vc no seu método editarItem
fizesse return destinoSalvar; Ai sim teria finalidade aquela linha, caso contrário não.
Você utiliza essa variavel dentro do seu mb?
poste também o inicio da pagina que você quer chamar…
tiago_
Abril 23, 2013, 7:31pm
#6
[quote=kleberdamasco]Você utiliza essa variavel dentro do seu mb?
poste também o inicio da pagina que você quer chamar…[/quote]
Utilizo sim.
Pagina q eu quero chamar
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="/templates/interna.xhtml">
<ui:define name="titulo">
Movimentação
</ui:define>
<ui:define name="corpo">
<h:form id="cadastro">
<h:messages />
<h:inputHidden value="#{requisicaoBean.codigoRequisicao}" />
<h:inputHidden value="#{requisicaoBean.nomeItem}" />
<h:inputHidden value="#{requisicaoBean.quantidadeSolicitada}" />
<h:panelGrid columns="2">
<h:outputLabel value="#R:" for="codigoRequisicao" />
<h:inputText id="codigoRequisicao" label="CodigoRequisicao"
value="#{requisicaoBean.codigoRequisicao}"
required="true" style="background-color:#F5F5F5" disable="true" readonly="true" size="4"/>
<h:outputLabel value="Item:" for="nomeItem" />
<h:inputText id="nomeItem" label="NomeItem"
value="#{requisicaoBean.nomeItem}"
required="true" style="background-color:#F5F5F5" disable="true" readonly="true"/>
<h:outputLabel value="Quantidade Solicitada:" for="quantidadeSolicitada" />
<h:inputText id="quantidadeSolicitada" label="quantidadeSolicitada" size="4"
value="#{requisicaoBean.quantidadeSolicitada}"
style="background-color:#F5F5F5" disable="true" readonly="true" />
<h:outputLabel value="Quantidade Atendida:" for="quantidadeAtendida" />
<h:inputText id="quantidadeAtendida" label="quantidadeAtendida" size="4"
value="#{requisicaoBean.quantidadeAtendida}"/>
<br/>
<br/>
<br/>
<h:commandButton action="#{requisicaoBean.atualizarRequisicao}" value="Atualizar" />
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</html>
Fiz isso na pagina anterior e funcionou…
<h:commandLink action="#{requisicaoBean.editar}">
<h:graphicImage library="imagens" name="editar_requisicao.png" style="border:0"/>
<f:setPropertyActionListener target="#{requisicaoBean.codigoRequisicao}" value="#{req.codigoRequisicao}"/>
<f:setPropertyActionListener target="#{requisicaoBean.destinoSalvar}" value="pages/vip/movimentacao_requisicao"/>
</h:commandLink>
tiago_
Abril 24, 2013, 5:55am
#7
Parece q eh um bug do jsf… Qnd chegar no trabalho vou tentar resolver
http://sobrecodigo.com/jsf_commandlink_datatable_problemas/
tiago_
Abril 24, 2013, 4:28pm
#8
[quote=tiago__]Parece q eh um bug do jsf… Qnd chegar no trabalho vou tentar resolver
http://sobrecodigo.com/jsf_commandlink_datatable_problemas/
[/quote]
Realmente foi um bug do jsf. Tive q usar richfaces p resolver meu problema…
<rich:dataTable value="#{requisicaoBean.reqMoviItem}" var="req" iterationStatusVar="it" id="table" rows="15" >
<rich:column>
<f:facet name="header">#R</f:facet>
#{req.codigoRequisicao}
</rich:column>
<rich:column>
<f:facet name="header">Item</f:facet>
<h:outputText value="#{req.nomeItem}" style="font-size: 14px;"/>
</rich:column>
<rich:column>
<f:facet name="header">Qntd Solicitada</f:facet>
<h:outputText value="#{req.quantidadeSolicitada}" style="font-size: 14px;"/>
</rich:column>
<rich:column>
<f:facet name="header">Qntd Atendida</f:facet>
<h:outputText value="#{req.quantidadeAtendida}" style="font-size: 14px;"/>
</rich:column>
<rich:column>
<h:commandLink >
<h:graphicImage library="imagens" name="itens_req.png" style="border:0" />
<f:setPropertyActionListener target="#{requisicaoBean.codigoRequisicao}" value="#{req.codigoRequisicao}"/>
<f:setPropertyActionListener target="#{requisicaoBean.nomeItem}" value="#{req.nomeItem}"/>
<f:setPropertyActionListener target="#{requisicaoBean.quantidadeSolicitada}" value="#{req.quantidadeSolicitada}"/>
<rich:componentControl target="popup" operation="show" />
</h:commandLink>
</rich:column>
</rich:dataTable>
<!-- Adicionar/Mudar a quantidadeAtendida do ITEM (popup) -->
<rich:popupPanel id="popup" modal="false" autosized="true"
resizeable="false">
<h:inputHidden value="#{requisicaoBean.codigoRequisicao}" />
<h:inputHidden value="#{requisicaoBean.nomeItem}" />
<h:inputHidden value="#{requisicaoBean.quantidadeSolicitada}" />
<f:facet name="header">
<h:outputText value="Simple popup panel" />
</f:facet>
<f:facet name="controls">
<h:outputLink value="#"
onclick="#{rich:component('popup')}.hide(); return false;">
FECHAR
</h:outputLink>
</f:facet>
<h:outputLabel value="#" for="codigoRequisicao" style="font-size: 14px;"/>
<h:inputText id="codigoRequisicao" label="CodigoRequisicao"
value="#{requisicaoBean.codigoRequisicao}"
required="true" disable="true" readonly="true" size="4" style="font-size: 14px;"/>
<br/>
<h:outputLabel value="Item:" for="nomeItem" style="font-size: 14px;"/>
<h:inputText id="nomeItem" label="NomeItem"
value="#{requisicaoBean.nomeItem}"
required="true" disable="true" readonly="true" style="font-size: 14px;"/>
<br/>
<h:outputLabel value="Qntd Solicitada:" for="quantidadeSolicitada" style="font-size: 14px;"/>
<h:inputText id="quantidadeSolicitada" label="quantidadeSolicitada" size="4"
value="#{requisicaoBean.quantidadeSolicitada}"
disable="true" readonly="true" style="font-size: 14px;"/>
<br/>
<h:outputLabel value="Qntd Atendida:" for="quantidadeAtendida" style="font-size: 14px;"/>
<h:inputText id="quantidadeAtendida" label="quantidadeAtendida" size="4"
value="#{requisicaoBean.quantidadeAtendida}" style="font-size: 14px;"/>
<br/>
<br/>
<br/>
<a4j:commandButton actionListener="#{requisicaoBean.atualizarRequisicao}"
value="Atualizar" execute="popup"
onclick="#{rich:component('popup')}.hide();">
</a4j:commandButton>
</rich:popupPanel>