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