2012-04-05 4 views
0

Ist es möglich, die <h:outputStylesheet zu sagen, um eine Datei von der Servlet-URL zu laden?Kann ich das h: outputStylesheet zum Laden der CSS-Datei verwenden, die vom Servlet abgerufen wird? (nicht Ressourcen-Ordner)

wie http://my.company.com/MyServletName/jahdkhasdhasjkdha8d98yuifysduifsdh Ursache, wenn ich versuche, so etwas wie

<h:outputStylesheet library="css" 
    name="http://my.company.com/MyServletName/jahdkhasdhasjkdha8d98yuifysduifsdh" target="head" /> 

wo die

http://my.company.com/MyServletName/jahdkhasdhasjkdha8d98yuifysduifsdh 

ist ein Servlet, das es auf der rechten Seite CSS-Datei direkt, es funktioniert nicht ... die <link Tag wird nicht erstellt

Ich brauche diese Ursache, wenn ich versuche,

zu verwenden nicht übersetzt wird immer in WebApp Namen ...

Vielen Dank im Voraus

<link type="text/css" rel="stylesheet" href="http://my.company.com/MyServletName/jahdkhasdhasjkdha8d98yuifysduifsdh" /> 

der #{facesContext.externalContext.requestContextPath}'/ Ausdruck in der CSS-Datei!

Antwort

1

Nein, das geht nicht. Selbst wenn es funktioniert hat, ist es das Servlet, das für die El-Auflösung verantwortlich ist, nicht die <h:outputStylesheet> Komponente.

Sie müssen das Problem anders lösen. Ich würde damit beginnen, alle CSS-Abhängigkeiten wie CSS-Bilder in denselben Ordner wie die CSS-Datei selbst zu stellen und sie dann relativ zu referenzieren. Auf diese Weise müssen Sie nicht mit dem Kontextpfad herumspielen.

Übrigens ist die #{request.contextPath} kürzer.

+0

Und das Servlet kann den EL Ausdruck nicht lösen? Ursache, wenn ich die CSS von lokalen Ressource den Ausdruck gerade gut gelöst – Daniel

+0

Es ist der 'ResourceHandler', der EL in CSS-Dateien löst und dies wird nur auf'/javax.faces.resource/* 'Anfragen aufgerufen. – BalusC

+0

Und ich denke, ich kann es nicht auf meinem Servlet arbeiten lassen ...? – Daniel

Verwandte Themen