Problemas com o Navigation Rule do JSF em included pages

1 resposta
hitcurst

Então, estou tentando aprender JSF, mas passei hoje o dia todo tentando
resolver este problema e nao consegui.

Tenho uma pagina “main.jsp” mais ou menos assim

<body>
		<f:view> 
			<jsp:include page="./includes/header.jsp" flush="true"/>
			<jsp:include page="./includes/menu_top.jsp" flush="true"/>
			<div id="content">
				<div id="content_top">
					<div id="content_top_left"></div>
					<div id="content_top_right"></div>
				</div>
				<div id="content_body">
					<jsp:include page="./includes/menu.jsp" flush="true"/>
					<div id="text">

na pagina include “menu.jsp” tenho o seguinte

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>
<f:subview id="menu">
	<h:form id="formCriar">
		<div id="sidebar">
			<div id="sidebar_top"></div>
			<div id="sidebar_body">
				<h1>Conta</h1>
				<ul>
					<li><h:h:commandLink action="doCriarConta" value="Criar Novo" /></li>
					<li><a href="#">Selecionar</a></li>
					<li><a href="#">Remover</a></li>
					<li><a href="#">Estátisticas</a></li>
				</ul>
			</div>
			<div id="sidebar_bottom"></div>
		</div>
	</h:form>
</f:subview>

O problema ja comeca aqui, onde o eclipse fica alertando que
o "commandLink"nao esta dentro de um “f:view”, mesmo estando dentro de um “f:subview”,
porem ele cria o link no menu e a pagina carrega normalmente.

Agora o problema mesmo é, como faco a regra de navegacao dele para outra pagina
para que ela va para ela mesma caso eu clique no menu ??

Por exemplo, tenho o mapeamento assim

<navigation-rule>
		<display-name>
		main</display-name>
		<from-view-id>/system/main/main.jsp</from-view-id>
		<navigation-case>
			<from-outcome>doCriarConta</from-outcome>
			<to-view-id>
			/system/main/modulos/cria_conta.jsp</to-view-id>
			<redirect />
		</navigation-case>
	</navigation-rule>

Ou seja, eu logo no sistema,
ele redireciona para o “main.jsp”
nesse main tem um include do menu.
Nesse menu tenho o commandLink que clicando redireciona para a pagina
de criar conta ( porem nao muda a URL no browser, continua main.faces ).
Agora essa pagina “cria_conta.jsp” tem o include desse mesmo menu,
so que aqui, quando clico novamente no link (Criar Novo) para, digamos, recarregar essa pagina,
ele nai mantem o “main.faces” na URL,
ele redireciona para
http://localhost:8080/WebBrowser/system/modulos/cria_conta.faces
e a pagina abre toda bugada, porque mudou o caminho dos CSS, etc…
nao fica mais
http://localhost:8080/WebBrowser/system/main.faces

1 Resposta

J

o seu navigation-rule só funciona para o menu que sai do main…
ou vc cria um para cada página ou faz um global: *

Criado 15 de fevereiro de 2009
Ultima resposta 15 de fev. de 2009
Respostas 1
Participantes 2