Startseite JSF-Webprojekt

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallöchen!

Ich habe eine Verständnisfrage zur Startseite eines JSF-Projektes.
Ich dachte bisher immer, ich habe das richtig verstanden. Die Startseite darf keine jsf-Tags beinhalten, da mit dem Aufruf der Webanwendung erst das Faces Servlet initialisiert wird. Es ist also der Umweg über ein redirect notwendig.

Rufe ich nun aber direkt die Seite auf, auf die weitergeleitet wird, läuft alles normal ohne Fehlermeldung.
Wird das Faces Servlet also nicht während des Aufrufs sondern unmittelbar davor aufgerufen? Für was ist dann der Umweg über die Startseite ohne jsf-Tags notwendig?

Wäre nett, wenn jemand dazu kurz was sagen könnte. Ich will ja nicht nur, dass es funktioniert, sondern es auch verstehen :###
 

Grey_M

Aktives Mitglied
Anonymous hat gesagt.:
Ich dachte bisher immer, ich habe das richtig verstanden. Die Startseite darf keine jsf-Tags beinhalten, da mit dem Aufruf der Webanwendung erst das Faces Servlet initialisiert wird.

Das man auf der Startseite keine JSF-Tags verwenden darf, wäre mir neu.
Du schickst ja nur nen Request an den Server, der intepriert dort dann die JSF-Tags baut die HTML Seite zusammen, schickt sie dir und fertig.

Anonymous hat gesagt.:
Für was ist dann der Umweg über die Startseite ohne jsf-Tags notwendig?
:###

Für gar nichts? Ich höre zum ersten Mal davon!
 
G

Guest

Gast
So funktioniert es aber nicht, nur über den Redirect. Folgende Exception wird geworfen:

Code:
SCHWERWIEGEND: Servlet.service() for servlet jsp threw exception
javax.faces.FacesException: Faces context not found. getResponseWriter will fail. 
Check if the FacesServlet has been initialized at all in your web.xml configuration file
and if you are accessing your jsf-pages through the correct mapping. 
E.g.: if your FacesServlet is mapped to  *.jsf (with the <servlet-mapping>-element), 
you need to access your pages as 'sample.jsf'. If you tried to access 'sample.jsp', you'd get this error-message.

Auszug aus der web.xml

Code:
<filter-mapping>
      
     <filter-name>extensionsFilter</filter-name>
     <url-pattern>/faces/*</url-pattern>
  </filter-mapping>
  
  <!-- ##############################################################
                 Faces Servlet als zentraler Controller
  ###################################################################-->
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <!-- ##############################################################
                        Extension Mapping
  ###################################################################-->
  <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>

Ist das Mapping irgendwie fehlerbehaftet?

Zu den web.xml-Parametern findet man leider nirgends was konkretes, daher habe ich damals ein fertiges Beispiel modifiziert und es hat funktioniert.

Danke für die Hilfe :)
 
G

Guest

Gast
habs gelöst.
Man darf die Startseite nicht wie in den Navigation Rules behandeln. Bei ihr muss man den Pfad vom Servlet-Mapping berücksichtigen.

Am Ende steht dann quasi:

Code:
<welcome-file-list>
<welcome-file>faces/index.jsp</welcome-file>
</welcome-file-list>
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben