Ola pessoal estou aprendendo JSF e surgiu uma dúvida quando estava estudando navegação estática e navegação dinâmica.
tenho uma página principal “welcomeJSF.jsp”:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%--
This file is an entry point for JavaServer Faces application.
--%>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Entrada de dados</title>
</head>
<body>
<h:form>
<h:panelGrid columns="2">
<h:outputLabel value="Digite seu nome: "/>
<h:inputText value="#{pessoa.nome}"/>
<h:outputLabel value="Digite sua senha: "/>
<h:inputSecret value="#{pessoa.senha}"/>
<h:commandButton value="Enviar" action="#{pessoa.login}" />
</h:panelGrid>
<br/>
<h:commandLink value="Sobre" action="sobre" />
</h:form>
</body>
</html>
</f:view>
Que possui um command button que se a senha e o usuário estiver correto vai para página sucesso e caso não vai para página falha.
E um link para página sobre “sobre.jsp”:
<%--
Document : sobre
Created on : 26/07/2011, 00:33:30
Author : foreverjuba
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Sobre o Sistema</title>
</head>
<body>
<h1>Programadores participantes!</h1>
<h1>Alexandre</h1>
<h1>Juliana</h1>
<h1>Juliana</h1>
<h1>Juliana</h1>
<h:form>
<h:commandLink value="Home" action="home" />
</h:form>
</body>
</html>
</f:view>
Onde nesta página tem um link Home que volta para página principal.
Faces-Config
<?xml version='1.0' encoding='UTF-8'?>
<!-- =========== FULL CONFIGURATION FILE ================================== -->
<faces-config version="1.2"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
<managed-bean>
<managed-bean-name>pessoa</managed-bean-name>
<managed-bean-class>com.bean.PessoaBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/welcomeJSF.jsp</from-view-id>
<navigation-case>
<from-outcome>sucesso</from-outcome>
<to-view-id>/sucesso.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>falha</from-outcome>
<to-view-id>/falha.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<navigation-case>
<from-outcome>sobre</from-outcome>
<to-view-id>/sobre.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<navigation-case>
<from-outcome>home</from-outcome>
<to-view-id>/welcomeJSF.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
A duvida é a seguinte:
Ao clicar no command link ‘sobre’, vai para página ‘sobre.jsp’ porém na url fica o endereço da pagina origem, no caso welcomeJSF. Ao clicar em home para voltar para página principal, vai para página welcomeJSF porém fica o endereço de ‘sobre’. Não teria como evitar isto? pois desta forma quando o usuário clica em F5 na página ‘sobre’ vai para página welcomeJSF e quando o usuário clica em F5 na página welcomeJSF que acabou de vir de ‘sobre’, vai para página ‘sobre’. Esquesito.
Ou seja, quando navego na url fica o endereço da página que chamou aquele link.
Grato,
Alexandre