2016-09-01 3 views
0

Ich habe die Themen im Zusammenhang mit Primefaces nicht rendern, aber ich konnte keinen Fall finden, der zu mir passt.Primefaces rendert ohne CSS-Stile?

Wenn wir also einen Blick auf die commanButton als Beispiel nehmen, die Taste macht, aber es sieht aus wie die Standard-JSF-Taste:

button with no css

Ich vermute, ich, dass es vielleicht ist, weil die css lädt nicht?

Dies ist, wie es in Code aussieht:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets" 
    xmlns:f="http://xmlns.jcp.org/jsf/core" 
    xmlns:h="http://xmlns.jcp.org/jsf/html" 
    xmlns:p="http://primefaces.org/ui"> 
<h:head> 

</h:head> 
<h:body> 
    <p:commandButton value="Example button" /> 
    . 
    .. 
    ... 
</h:body> 
</html> 

Die primefaces Bibliothek wurde sicher heruntergeladen - i im Bereich der Außen Bibliotheken Abschnitt sehen:

library screenshot

hier ist mein pom. xml

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>Catering</groupId> 
    <artifactId>Catering</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>Catering Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
    <dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>3.8.1</version> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>javax</groupId> 
    <artifactId>javaee-api</artifactId> 
    <version>7.0</version> 
    <scope>provided</scope> 
</dependency> 
<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-core</artifactId> 
    <version>5.2.1.Final</version> 
</dependency> 
<dependency> 
    <groupId>postgresql</groupId> 
    <artifactId>postgresql</artifactId> 
    <version>9.1-901-1.jdbc4</version> 
</dependency> 
<dependency> 
    <groupId>org.projectlombok</groupId> 
    <artifactId>lombok</artifactId> 
    <version>1.16.10</version> 
    <scope>provided</scope> 
</dependency> 
<dependency> 
    <groupId>org.primefaces</groupId> 
    <artifactId>primefaces</artifactId> 
    <version>6.0</version> 
</dependency> 
    </dependencies> 
    <build> 
    <finalName>Catering</finalName> 
    </build> 
</project> 

Und das ist, wie ich es habe co nfigured in web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
    http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
    version="3.1"> 
<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>*.xhtml</url-pattern> 
</servlet-mapping> 
... 
.. 
. 

</web-app> 

Was sind Ihre Ideen? Lassen Sie es mich wissen, wenn Sie mehr vom Quellcode benötigen.

+0

Haben Sie den Netzwerkverkehr mit Ihrem Browser-Entwickler-Tool überprüft? – Kukeltje

+0

Es hat sich herausgestellt, dass es sich um Sicherheitseinschränkungen handelt, die in web.xml definiert sind. Wenn ich dieses Teil entferne, funktioniert es überraschend. Ich werde es beschreiben, wenn ich es vollständig löse. – Broccoli

Antwort

0

Ok, so dass das Problem wurde von mir verursacht Sicherheitsbeschränkung für alle Dateien

<security-constraint> 
    <display-name>pages_auth</display-name> 

    <web-resource-collection> 
     <web-resource-name>pages_auth</web-resource-name> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 

    <auth-constraint> 
     <role-name>user</role-name> 
    </auth-constraint> 
</security-constraint> 

Und dann gesetzt ist, wenn geschützte Ressource zuzugreifen versuchen (die auch zu CSS-Datei verweist) primefaces nicht richtig gemacht Bekommen auf der Login-Seite. Es wird beschrieben, wie man es hier lösen kann: PrimeFaces not rendering when using login form authentication.

+0

Zunächst, in der Antwort sagen Sie nicht, wie es konfiguriert werden sollte, um zu arbeiten. Hast du ein funktionierendes Beispiel? Zweitens ist das kein Bug, sondern genau so, wie du es sagst. Wenn sich die CSS-Datei hinter einer gesicherten URL befindet, kann sie nicht auf eine nicht gesicherte Seite geladen werden. Wäre ein Problem mit plain html auch. Drittens fehlte dieser Teil in der web.xml in der Frage. Nächstes Mal erstellen Sie ein [mcve] und Sie würden dies schnell finden – Kukeltje

+0

Ja, danke für den Rat, ich dachte nicht, dass die Sicherheit hier eine Rolle spielen könnte. – Broccoli

+0

Noch enthält Ihre Antwort keine Lösung ... Können Sie es verbessern? – Kukeltje