Allora rispondi come lo vuoi fare in redirect in JSP o in JSF ?
Allora rispondi come lo vuoi fare in redirect in JSP o in JSF ?
Secondo il pdf che mi hanno dato in facoltà avrei dovuto usare jsp:forward page="target"
K
e allora è jsp, modifica i file come ti ho detto e vedi che tutto funziona.
Il forward sì che è jsp, sono le pagine che sono in jsf. Il fatto è che le ho modificate come mi hai detto, ma il risultato è quello che ho indicato nel mio post precedente, ovvero:Originariamente inviato da francesco.muia
e allora è jsp, modifica i file come ti ho detto e vedi che tutto funziona.
...proprio non capisco...codice:org.apache.jasper.JasperException: An exception occurred processing JSP page /welcomeJSF.jsp at line 13 10: This file is an entry point for JavaServer Faces application. 11: --%> 12: <f:view> 13: <jsp:forward page="inputnumber.jsf" /> 14: </f:view> 15: Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:553) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:442) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408) com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442) com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106) com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144) javax.faces.webapp.FacesServlet.service(FacesServlet.java:245) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) root cause org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.IllegalStateException org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:534) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:442) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408) com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442) com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106) com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144) javax.faces.webapp.FacesServlet.service(FacesServlet.java:245) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:745) org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:716) org.apache.jsp.welcomeJSF_jsp._jspx_meth_f_005fview_005f0(welcomeJSF_jsp.java:104) org.apache.jsp.welcomeJSF_jsp._jspService(welcomeJSF_jsp.java:67) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408) com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442) com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106) com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144) javax.faces.webapp.FacesServlet.service(FacesServlet.java:245) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) root cause javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.IllegalStateException org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:907) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840) org.apache.jsp.inputnumber_jsp._jspService(inputnumber_jsp.java:79) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408) com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442) com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106) com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144) javax.faces.webapp.FacesServlet.service(FacesServlet.java:245) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:745) org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:716) org.apache.jsp.welcomeJSF_jsp._jspx_meth_f_005fview_005f0(welcomeJSF_jsp.java:104) org.apache.jsp.welcomeJSF_jsp._jspService(welcomeJSF_jsp.java:67) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408) com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442) com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106) com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144) javax.faces.webapp.FacesServlet.service(FacesServlet.java:245) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) root cause java.lang.IllegalStateException com.sun.faces.taglib.jsf_core.ViewTag.getComponentType(ViewTag.java:278) javax.faces.webapp.UIComponentELTag.createComponent(UIComponentELTag.java:215) javax.faces.webapp.UIComponentClassicTagBase.createChild(UIComponentClassicTagBase.java:476) javax.faces.webapp.UIComponentClassicTagBase.findComponent(UIComponentClassicTagBase.java:660) javax.faces.webapp.UIComponentClassicTagBase.doStartTag(UIComponentClassicTagBase.java:1126) com.sun.faces.taglib.jsf_core.ViewTag.doStartTag(ViewTag.java:183) org.apache.jsp.inputnumber_jsp._jspx_meth_f_005fview_005f0(inputnumber_jsp.java:96) org.apache.jsp.inputnumber_jsp._jspService(inputnumber_jsp.java:71) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408) com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442) com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106) com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144) javax.faces.webapp.FacesServlet.service(FacesServlet.java:245) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:745) org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:716) org.apache.jsp.welcomeJSF_jsp._jspx_meth_f_005fview_005f0(welcomeJSF_jsp.java:104) org.apache.jsp.welcomeJSF_jsp._jspService(welcomeJSF_jsp.java:67) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408) com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442) com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106) com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144) javax.faces.webapp.FacesServlet.service(FacesServlet.java:245) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)![]()
K
Semplicemente perchè non le hai modificate come ti ho detto.
Questo è il tuo web.xml, e come puoi vedere gli stai dicendo che la welcome page è una jsf, e non una jsp:
Cambia la welcome file incodice:<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" 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_3_0.xsd"> <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>*.jsf</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>welcomeJSF.jsf</welcome-file> </welcome-file-list> </web-app>
La pagina welcome... non deve contenere tag jsf come stai facendo tu (<f:view>)codice:<welcome-file-list> <welcome-file>welcomeJSF.jsp</welcome-file> </welcome-file-list>
Cambiala in questo modo:codice:<%@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> <jsp:forward page="inputnumber.jsf" /> </f:view>
codice:<%@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> <body> <jsp:forward page="inputnumber.jsf" /> </body> </html>
Ok, afferrato. Così funziona. In altre parole mi stai dicendo che se voglio usare un tag jsp: non posso far elaborare la pagina come jsf. E' giusto questo?
Poi, visto che mi piacerebbe capire bene come fare le cose, ti chiederò: se volessi fare un redirect in una pagina jsf (possibilmente evitando di tirar in mezzo faces-config.xml e navigation-rule), come dovrei fare?
Intanto vi ringrazio tutti per l'attenzione. Siete stati gentilissimi![]()
K
Esatto.Ok, afferrato. Così funziona. In altre parole mi stai dicendo che se voglio usare un tag jsp: non posso far elaborare la pagina come jsf. E' giusto questo?
Senza tirare in ballo il faces-config che io sappia non c'è modo, e dal'altra parte è anche corretto che non esista in quanto JSF utilizza appunto le navigation-rules per la navigazione tra le varie view. L'unico modo in cui puoi simulare il forward jsp è attraverso un action di un backing bean:
codice:public void submitUserResponse(){ String uri = "foo.jsf"; FacesContext.getCurrentInstance().getExternalContext().dispatch(uri); }
Perfetto. Tutto chiaro. Ancora infinite grazie e...a buon rendere, anche se la vedo dura!
Salut!
K
Ni.Originariamente inviato da francesco.muia
Esatto.
Senza tirare in ballo il faces-config che io sappia non c'è modo, e dal'altra parte è anche corretto che non esista in quanto JSF utilizza appunto le navigation-rules per la navigazione tra le varie view. L'unico modo in cui puoi simulare il forward jsp è attraverso un action di un backing bean:
codice:public void submitUserResponse(){ String uri = "foo.jsf"; FacesContext.getCurrentInstance().getExternalContext().dispatch(uri); }
Teoricamente è corretto, in realtà puoi chiedere di mappare le jsf su pagine jsp (non ti dico tutte le impostazioni adesso) e poi la mia pagina pagina.jsp inizia così
e il bodycodice:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
come vedi ho fatto tutto.codice:<f:view> </f:view>
Ma come ti dicevo ieri, il mio web.xml
più altre impostazioni.codice:<servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping>
Il faces-config.xml non è interessato da questo
Diciamo che per il momento impara a gestire per bene con una tecnologia, poi impara a fare altro
RTFM Read That F*** Manual!!!
Il problema era che tentava di fare un jsp:forward all'interno di una view jsf è la cosa non è consentita. Il problema nasceva dal fatto che sul web.xml aveva mappata l'index page come JSF