Navigation Rule (JSF) não funciona sem redirect...[RESOLVIDO]

Olá amigos do fórum. Venho a voces novamente em busca de ajuda.

Vejam essa regra de navegação:

<navigation-rule> <from-view-id>/view/anuncio/Anuncie.xhtml</from-view-id> <navigation-case> <from-outcome>goLogin</from-outcome> <to-view-id>/view/anuncio/LoginAnuncio.xhtml</to-view-id> <redirect/> </navigation-case> </navigation-rule>

Ela funciona corretamente.No entanto, por uma necessidade do negocio, eu gostaria que a URL do browser NÃO mudasse no momento dessa troca de paginas, e que o escopo do meu bean não fosse perdido. A principio, para fazer isso bastaria retirar o para que o JSF fizesse um foward no momento da navegação.

Porem, quando tiro o redirect, a navegação pára de funcionar…nao avança para a proxima pagina.
É necessario mais alguma coisa para trabalhar com o foward?

Obrigado!

Nao eh necessario…
poste o codigo que efetua a navegacao…
Sua pagina e seu managedbean… pra ver!
VALEU

Aí velhao…essa é a página

[code]<?xml version="1.0" encoding="ISO-8859-1"?>

<ui:composition template="../template/Template.xhtml">
	<ui:define name="center">
		<a4j:loadStyle src="../css/PlanoAnuncio.css" />
		<div align="center" style="margin-top: 0px;">
			<rich:panel style="width:100%;" >
				<h:form>
					<table width="100%">
						<tr>
							<td valign="top" align="left">
								<rich:panelMenu width="200px" iconGroupPosition="left" iconGroupTopPosition="left"
															  iconCollapsedGroup="triagleDown"
															  iconExpandedGroup="triangleUp" 
															  iconCollapsedTopGroup="triangleDown" 
															  iconExpandedTopGroup="triangleUp"
															  iconItem="triangle">
									
									<rich:panelMenuGroup expanded="true" label="Anunciante Particular (Pessoa Física)" styleClass="panel-menu-group-header">
										<rich:panelMenuItem label="Carros" styleClass="panel-menu-item" action="#{anuncioManagedBean.planoAnuncioView.selectedTipoVeiculo}" >
											<f:param name="idTipoVeiculo" value="1" />
										</rich:panelMenuItem>
										<rich:panelMenuItem label="Motos" styleClass="panel-menu-item" action="#{anuncioManagedBean.planoAnuncioView.selectedTipoVeiculo}" >
											<f:param name="idTipoVeiculo" value="2" />
										</rich:panelMenuItem>
										<rich:panelMenuItem label="Veículos Pesados" styleClass="panel-menu-item" action="#{anuncioManagedBean.planoAnuncioView.selectedTipoVeiculo}" >
											<f:param name="idTipoVeiculo" value="3" />
										</rich:panelMenuItem>
										<rich:panelMenuItem label="Náuticos" styleClass="panel-menu-item" action="#{anuncioManagedBean.planoAnuncioView.selectedTipoVeiculo}" >
											<f:param name="idTipoVeiculo" value="4" />
										</rich:panelMenuItem>
										<rich:panelMenuItem label="Colecionáveis" styleClass="panel-menu-item" action="#{anuncioManagedBean.planoAnuncioView.selectedTipoVeiculo}" >
											<f:param name="idTipoVeiculo" value="5" />
										</rich:panelMenuItem>
									</rich:panelMenuGroup>
								</rich:panelMenu>
							</td>
							<td valign="top">
								<rich:panel style="padding-left:-10px;">
									<a4j:loadStyle src="../css/Localizable.css" />
									<rich:panel id="panelLocalizable" bodyClass="body-panel-localizable">
										<div align="left">
											<table align="left">
												<tr>
													<td valign="top">
														<span style="white-space: nowrap;">Voce está em: </span>  
													</td>
													<td valign="top">
														<h:outputLink value="${request.contextPath}/view/index.html" styleClass="link-localizable">
															<h:outputText value="Easy Motors > " />
														</h:outputLink>
													</td>
													<td valign="top">
														<h:outputLink value="Anuncie.html" styleClass="link-localizable">
															<h:outputText value="Anuncie Seu Veículo > " />
														</h:outputLink>
													</td>
													<td>
														<h:outputText id="currentItem" value="Plano de Anúncio" styleClass="link-localizable-current" />
														<div align="center">
															<img src="../images/favicon.ico" height="20px" />
														</div>
													</td>
												</tr>
											</table>
										</div>
									</rich:panel>
									<br /><br /><br />
									<div align="left" class="div-data-plano-anuncio">
										<div align="left">
											<br />
											<span class="title-div-planos-anuncio">Plano de Anúncio</span>
											<br /><br />
											<span>Selecione o plano de anúncio que mais se adequa a você</span>
											<br />
											<div>
												<rich:dataGrid id="grid-planos" styleClass="grid-table-planos" border="0px" var="item" columns="1" value="#{anuncioManagedBean.planoAnuncioView.planos}" rowKeyVar="row" >
													<h:panelGrid columns="2">
														<a4j:mediaOutput element="img" cacheable="false" session="false"  mimeType="image/jpeg" createContent="#{anuncioManagedBean.planoAnuncioView.paintImage}" value="#{row}" >
														</a4j:mediaOutput>
														
														<rich:panel>
															<table align="center" cellspacing="15">
																<tr>	
																	<td align="center">
																		<h:outputText value="#{item.nome} - #{item.descQtDias}" styleClass="nome-plano" />
																	</td>
																</tr>
																<tr>
																	<td align="center">
																		<h:outputText value="#{item.descPrioridade} prioridade de exibição de busca" styleClass="info-plano" />
																	</td>
																</tr>
																<tr>
																	<td align="center">
																		<h:outputText value="#{item.qtFotos} fotos no detalhe do carro" styleClass="info-plano" />
																	</td>
																</tr>
																<tr>
																	<td align="center">
																		<h:outputText value="Preço:" styleClass="preco-plano" />
																		<rich:spacer width="10" />
																		<h:outputText value="#{item.preco}" styleClass="preco-plano" >
																			<f:convertNumber type="currency"/>
																		</h:outputText>
																	</td>
																</tr>
																<tr>
																	<td align="center">
																		<a4j:commandLink value="Veja como ficaria o seu anúncio" onclick="Richfaces.showModalPanel('grid-planos:#{row}:modal-detalhe');" ajaxSingle="true" />
																	</td>
																</tr>
																<tr>
																	<td align="center">
																		<a4j:commandLink value="Anuncie" styleClass="link-anuncie" action="#{anuncioManagedBean.planoAnuncioView.selectItem}" >
																			<f:setPropertyActionListener value="#{item}" target="#{anuncioManagedBean.planoAnuncioView.planoAnuncioTo}" />
																		</a4j:commandLink>
																	</td>
																</tr>
															</table>
														</rich:panel>
													</h:panelGrid>
													<br />	
													<rich:modalPanel top="100" height="450" width="650" id="modal-detalhe"  >
														<a4j:loadStyle src="../css/ModalPanel.css" />
														<f:facet name="header">
															<h:outputText id="titulo" styleClass="title-modal-detalhe" value="#{item.nome} - #{item.descQtDias}" />
														</f:facet>
														<f:facet name="controls">
							            					<h:panelGroup>
							                					<h:graphicImage value="../images/CloseIcon.png" styleClass="hidelink" id="hidelink"/>
							                					<rich:componentControl for="modal-detalhe" attachTo="hidelink" operation="hide" event="onclick"/>
							            					</h:panelGroup>
							        					</f:facet>
							        					<a4j:mediaOutput element="img" cacheable="false" session="false" mimeType="image/jpeg" createContent="#{anuncioManagedBean.planoAnuncioView.paintImageDetalhePlano}" value="#{row}" >
														</a4j:mediaOutput>
													</rich:modalPanel>
												</rich:dataGrid>
											</div>
										</div>
									</div>
								</rich:panel>
							</td>
						</tr>
					</table>
				</h:form>
			</rich:panel>
		</div>
	</ui:define>
</ui:composition>
[/code]

E esse é o método da minha classe, que redireciona…ao menos quando tem o na regra :lol:

[code]public String selectItem(){

	setChanged();
	notifyObservers(planoAnuncioTo);

	return "goLogin";
}[/code]

Está retornando a string pedida na regra de navegação…nao entendo porque nao está funcionando sem o redirect.

Obrigado!

Voce colocou assim:

Coloque assim:

<navigation-rule>
   <from-view-id>/view/anuncio/Anuncie.xhtml</from-view-id>
   <navigation-case>
   	<from-action>#{anuncioManagedBean.planoAnuncioView.selectItem}</from-action>
   	<to-view-id>/view/anuncio/LoginAnuncio.xhtml</to-view-id>
   	<redirect/>
   </navigation-case>
</navigation-rule>

Testa e dps posta feedback!

Vou dar um palpite:
Você está utilizando um componente Ajax (a4j:commandLink), que não faz reload da página. Por causa disso o forward não funciona.
Substitua por um h:commandLink.

A propósito:
Não sei se você já chegou a pesquisar sobre esse assunto, mas vou dar uma dica. Se já souber disso não tem problema, fica para outros mais iniciantes que visitarem o tópico:
-> É importante conhecer bem a diferença entre Forward e Redirect. É comum se achar que a única diferença é que muda a URL no browser, mas não é isso, as requisições funcionam de maneira totalmente diferente. Uma boa explicação sobre o tema está na revista Mundo Java (número 38 ), em um artigo sobre erros comuns dos desenvolvedores JSF. Mas deve ter bastante material também na Internet.

gomesrod, que chutaço no angulo cara :lol: …era isso mesmo. Realmente não havia necessidade do a4j:commandlink pois nao queria enviar requisição ajax nessa pagina, e até mesmo o meu form era um h:form normal…enfim, alterando pro h:commandlink rolou.

Agradeço sua dica mas eu já tinha sim pesquisado sobre a diferença entre o redirect e o forward, e justamente a diferença na forma como é feita a request foi o que me levou a usar o forward. Mas fica registrado pra quem nao conhece.

A proposito, recomendo esse otimo post do Rafael Ponte sobre o assunto: http://www.rponte.com.br/2008/07/12/repitam-comigo-redirect-nao-e-forward/

JonathanSSantos, valeu pela ajuda tambem velho, e a todos que visitaram o topico. Obrigado.