salve. ho iniziato da poco a usare le jsf...e devo dire che le trovo interessanti.
solo che ho un problema di base che non riesco a risolvere (forse dovuto al fatto che devo ancora capire bene il meccanismo di base). allora...il problema è questo :
quando devo caricare una pagina del tipo http://localhost:8080/JSF/ voglio che nel path venga visualizzato il classico http://localhost:8080/JSF/register.faces ...e così per tutte le altre pagine che visualizzerò in seguito (nascondendo così il path reale della pagina creata). credo sia un requisito per sviluppare un framework con basi accettabili. il fatto è che non funziona.
il codice delle mie jsp è questo :
register.jsp:
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<f:view>
<html>
<head>
<title>Pagina registrazione</title>
</head>
<body>
<h:form>
email : <h:inputText/>
password : <h:inputSecret/>
<h:commandButton value="Sign Me Up!" action="register"/>
</h:form>
</body>
</html>
</f:view>
result.jsp (che si trova in WEB-INF/result/)
<%--
Document : regisyrt.jsp
Created on : 16-dic-2008, 11.55.07
Author : DjFonPlaz
--%>
<%@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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Welcome Page</title>
</head>
<body>
<h2>Benvenuto nuovo utente!</h2>
</body>
</html>
web.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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-app_2_5.xsd">
<context-param>
<param-name>com.sun.faces.verifyObjects</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.validateXml</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/register.jsp</welcome-file>
</welcome-file-list>
</web-app>
e per finire il file di configurazione per il framework face:
<?xml version='1.0' encoding='UTF-8'?>
<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/we...config_1_2.xsd">
<navigation-rule>
<from-view-id>/register.jsp</from-view-id>
<navigation-case>
<from-outcome>register</from-outcome>
<to-view-id>/WEB-INF/result/result.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
cosa devo settare? perchè quando lo faccio partire, mi carica la pagina di "registrazione", la register.jsp (e il percoso è http://localhost:8080/JSF/ , e già quì è sbagliato, lo vorrei sin dall'inizio il mio http://localhost:8080/JSF/register.faces)
quando clicco sul pulsante, mi carica la pagina e il path http://localhost:8080/JSF/faces/register.jsp (che arriva dal mapping della servlet, se ho capito bene).
mi hanno detto che basta un redirect sull'xml, ma non ho capito molto bene il senso, visto che le pagine me le carica! voglio solo nascondere il path! sicuramente è una soluzione banale e qualcuno potrebbe aiutarmi. ringrazio in anticipo, e aspetto uno risposta!
ciao a tutti \o

Rispondi quotando