Servlet Manuelles Rendern einer JSF Datei

Hi Folks,

heute hab ich mal eine interessante Aufgabenstellung bzw. Konstellation .. wie auch immer.

Ich würde gerne eine JSF Seite manuell rendern indem ich ein Servlet aufrufe. Das scheint auch zu funktionieren, jedoch wird mir nichts ausgegeben:
Beispiel:
Java:
ViewHandler views = facesContext.getApplication().getViewHandler();
UIViewRoot iViewRoot = views.createView(facesContext, "/mypage.xhtml");
views.renderView(facesContext, iViewRoot);
FacesContext hole ich mir wie hier beschrieben: Thoughts About: What your mama don't tell you about JSF

Das scheint soweit auch zu funktionieren, wenn ich z.b. den Namen der Datei ändere, bekomme ich einen Fehler, dass die Datei nicht gefunden wird etc...

Mein Problem bzw. meine Vermutung ist, dass die Response nicht korrekt geschrieben wird. Die Seite bleibt weiß / leer.
renderView läuft ohne Fehler durch...
Vielleicht hat von euch ja jemand eine gute Idee :)

Achso, mein Aufruf lautet wie folgt:
http://localhost:8080/MyServlet?action=renderCustomer&customerId=744 (wobei ich nicht glaub, dass das relevant ist)

Edit sagt:
Was ich noch schnell sagen muss, wenn ich die JSF Seite absichtlich "kaputt" mache, bekomme ich auch einen Fehler (
Code:
Element type "tr:navigationPane" must be followed by either attribute specifications, ">" or "/>".
).
Somit kann man sagen, die Page wird zu 100% gerendert .. nur die Darstellung fehlt...
Gruß!
 
Zuletzt bearbeitet:
Hi,

ich bin mir nicht sicher aber ich glaube das mapping zum Faces-servlet fehlt!

d.h. entweder /mypage.jsf oder /faces/mypage.xhtml (kommt darauf wie du das mapping in der web.xml definiert hast).

probier es mal aus.

Grüße
 
klingt gut ... da ich absolut keine Ahnung hast, was du genau meinst :)

in meiner web.xml hab ich nur folgenden Eintrag
[XML]
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
[/XML]

Gruß
 
na statt
Java:
ViewHandler views = facesContext.getApplication().getViewHandler();
UIViewRoot iViewRoot = views.createView(facesContext, "/mypage.xhtml");
views.renderView(facesContext, iViewRoot);
Java:
ViewHandler views = facesContext.getApplication().getViewHandler();
UIViewRoot iViewRoot = views.createView(facesContext, "/faces/mypage.xhtml");
views.renderView(facesContext, iViewRoot);
um JSF mit zuteilen das es sich um ein faces-request handelt.

Greetz
 
Hey JimPanse :)

hat leider nicht funktioniert, ich hatte nur aus datenschutzgründen den Namen "wegeditiert".
Ich hab die Idee nun wieder verworfen .. trotzdem danke!

Gruß
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben