JSF+Lightbox do primefaces [Resolvido]

1 resposta
N

Boa noite pessoal.. nao queria postar isso aqui.. mas já venho quebrando cabeça há alguns dias. Desculpem o tamanho do post mas é pra ficar bem explicado. Vamos lá.

Estou usando primefaces no meu projeto e em determinado momento retorno uma lista para meu xhtml.

Primeiro XHTML
<p:dataTable		value="#{estoqueVeiculosAPagarBean.listaVeiculosAPagar}" 	var="veiculo">
					<p:column headerText="Modelo">
						<h:outputText value="#{veiculo.descricaoModelo}"></h:outputText>
					</p:column>
					<p:column headerText="Valor">
						<h:outputLink value="pagarVeiculo.xhtml" id="ajuda">
								<h:outputText value="#{veiculo.totalNotaFabrica}">
									<f:convertNumber type="currency" currencySymbol="R$ "
										locale="pt_BR" />
								</h:outputText>
								<f:param name="chassiAPagar" value="#{veiculo.chassiResumido}" />
							</h:outputLink>
							<!-- clocar mensagem ao passar o mouse -->
							<p:tooltip for="ajuda" value="Pagar veículo." showEffect="fade"
								hideEffect="fade" />
					</p:column>
				</p:dataTable>

até aí tudo bem.. tudo funciona...
Quando clico em meu outputLink ele me redireciona pra uma tela onde insiro um valor e faço um update no banco...

Segundo XHML
<h:form>
		<f:metadata>
			<f:viewParam name="chassiAPagar"
				value="#{pagarVeiculoBean.chassiResumido}" />
			<s:viewAction action="#{pagarVeiculoBean.carregaVeiculo}" />
		</f:metadata>
		<h:panelGrid columns="1">
		<h:outputText 
			value="Veiculo: #{pagarVeiculoBean.veiculo.modelo.descricaoModelo}"/>
		<h:outputText value="Chassi: #{pagarVeiculoBean.veiculo.chassi}"/>
		</h:panelGrid>
		<h:panelGrid columns="2">

			<h:outputLabel value="Valor:" for="valorPago" />
			<h:inputText id="valorPago" value="#{pagarVeiculoBean.veiculo.valorPago}" />
			
				
			<h:outputLabel value="Observações" for="obsPagamento" />
			<h:inputTextarea id="obsPagamento" value="#{pagarVeiculoBean.veiculo.obsPagamento}"/>

			<h:commandButton value="Pagar" action="#{pagarVeiculoBean.pagaCarro}" />  
				<!-- onclick="javascript:window.parent.location.reload(true);"/>-->

		</h:panelGrid>
	</h:form>

Logo após o update ele me redireciona pra uma tela de sucesso.
Nao vi necessidade de postar o código referente à persistência porque tudo FUNCIONA!

Agora vem o problema: para tentar deixar mais agradável ao usuario decidi usar o Lightbox do Primefaces.. logo, o outputLink de minha primeira pagina xhtml ficou assim.

<p:lightBox iframe="true">
							<h:outputLink value="pagarVeiculo.xhtml" id="ajuda">

								<h:outputText value="#{veiculo.totalNotaFabrica}">
									<f:convertNumber type="currency" currencySymbol="R$ "
										locale="pt_BR" />
								</h:outputText>
								<f:param name="chassiAPagar" value="#{veiculo.chassiResumido}" />
							</h:outputLink>
							<!-- clocar mensagem ao passar o mouse -->
							<p:tooltip for="ajuda" value="Pagar veículo." showEffect="fade"
								hideEffect="fade" />
						</p:lightBox>

ele faz certinho abre meu segundo xhtml em um iframe.. mas agora é que chega o problema.. nao consigo fazer o update. Quando clico no meu commandbutton ele gera o erro a seguir:

javax.faces.application.ViewExpiredException: viewId:/pagarVeiculo.xhtml - A exibição de /pagarVeiculo.xhtml não pôde ser restaurada.

Sem o Lightbox funciona perfeitamente. Com o lightbox nao faz o commit... Meu managedBean está como viewScoped só pra constar, mas acredito nao ser o caso, já que em tese, seria redirecionado para outra pagina que nao usa nenhuma informação do bean.

Alguem ja passou por isso?

1 Resposta

N

Talvez estivesse tentando usar a solução incorreta

Vou usar o dialog do primefaces e posto se funcionou ou nao

----- Funcionou Perfeitamente ----

Criado 4 de junho de 2012
Ultima resposta 4 de jun. de 2012
Respostas 1
Participantes 1