如何在 spring 安全的展示网站上显示 primefaces 版本?
How to display the primefaces version on showcase website with spring security?
我 运行 在 glassfish 4 服务器上修改了 primefaces showcase,大多数情况下都有效,但是版本显示不正确(在网站底部)。我采用了原始版本并将其与 spring 安全性相结合。
代码来自template.xhtml
Running #{build.primefacesVersion} on #{build.jsfVersion}.
原版给我
Running PrimeFaces-5.1 on Mojarra-2.2.7
修改后的版本显示
Running ${primefacesVersion} on ${jsfVersion}.
于 http://localhost:8080/jsfsecure_copy/faces/index_1.xhtml。
可能是我的配置有问题?
面孔-config.xml
<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.2"
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-facesconfig_2_2.xsd">
<application>
<action-listener>org.primefaces.application.DialogActionListener</action-listener>
<navigation-handler>org.primefaces.application.DialogNavigationHandler</navigation-handler>
<view-handler>org.primefaces.application.DialogViewHandler</view-handler>
<navigation-handler>org.primefaces.mobile.application.MobileNavigationHandler</navigation-handler>
<locale-config>
<default-locale>en</default-locale>
</locale-config>
<el-resolver>org.primefaces.application.exceptionhandler.PrimeExceptionHandlerELResolver</el-resolver>
<resource-bundle>
<base-name>build</base-name>
<var>build</var>
</resource-bundle>
<resource-bundle>
<base-name>/Bundle</base-name>
<var>bundle</var>
</resource-bundle>
<resource-bundle>
<base-name>/Bundle</base-name>
<var>bundle</var>
</resource-bundle>
</application>
<converter>
<converter-id>theme</converter-id>
<converter-class>org.primefaces.showcase.convert.ThemeConverter</converter-class>
</converter>
<factory>
<exception-handler-factory>org.primefaces.application.exceptionhandler.PrimeExceptionHandlerFactory</exception-handler-factory>
</factory>
<!-- for spring security -->
<lifecycle>
<phase-listener>edu.wctc.maven.glassfish.jsfsecure.util.LoginErrorPhaseListener</phase-listener>
</lifecycle>
更新:
我的build.properties:
jsfVersion=${jsfVersion}
primefacesVersion=${primefacesVersion}
我找到了解决方案,它必须在 pom.xml 中定义。我删除了 <profile>
部分,它已被定义:
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>edu.wctc.maven.glassfish</groupId>
<artifactId>jsfsecure_copy</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>jsfsecure_copy</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<org.springframework.version>4.0.3.RELEASE</org.springframework.version>
<spring-security.version>3.2.5.RELEASE</spring-security.version>
<junit.version>4.11</junit.version>
<aspectj.version>1.7.1</aspectj.version>
</properties>
<dependencies>
[...]
</dependencies>
<repositories>
[...]
</repositories>
<build>
[...]
</build>
<profiles>
<profile>
<id>stable</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<jsfVersion>Mojarra-2.2.7</jsfVersion>
<primefacesVersion>PrimeFaces-5.1</primefacesVersion>
</properties>
<dependencies>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>5.1</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.2.7</version>
</dependency>
</dependencies>
</profile>
</profiles>
所以我现在的理解是 EL 表达式 在 template.xhtml
#{build.primefacesVersion}
和 #{build.jsfVersion}
将在 \src\main\resources\build.properties
中查找
jsfVersion=${jsfVersion}
primefacesVersion=${primefacesVersion}
引用了 pom.xml
<properties>
<jsfVersion>Mojarra-2.2.7</jsfVersion>
<primefacesVersion>PrimeFaces-5.1</primefacesVersion>
</properties>
我 运行 在 glassfish 4 服务器上修改了 primefaces showcase,大多数情况下都有效,但是版本显示不正确(在网站底部)。我采用了原始版本并将其与 spring 安全性相结合。
代码来自template.xhtml
Running #{build.primefacesVersion} on #{build.jsfVersion}.
原版给我
Running PrimeFaces-5.1 on Mojarra-2.2.7
修改后的版本显示
Running ${primefacesVersion} on ${jsfVersion}.
于 http://localhost:8080/jsfsecure_copy/faces/index_1.xhtml。
可能是我的配置有问题?
面孔-config.xml
<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.2"
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-facesconfig_2_2.xsd">
<application>
<action-listener>org.primefaces.application.DialogActionListener</action-listener>
<navigation-handler>org.primefaces.application.DialogNavigationHandler</navigation-handler>
<view-handler>org.primefaces.application.DialogViewHandler</view-handler>
<navigation-handler>org.primefaces.mobile.application.MobileNavigationHandler</navigation-handler>
<locale-config>
<default-locale>en</default-locale>
</locale-config>
<el-resolver>org.primefaces.application.exceptionhandler.PrimeExceptionHandlerELResolver</el-resolver>
<resource-bundle>
<base-name>build</base-name>
<var>build</var>
</resource-bundle>
<resource-bundle>
<base-name>/Bundle</base-name>
<var>bundle</var>
</resource-bundle>
<resource-bundle>
<base-name>/Bundle</base-name>
<var>bundle</var>
</resource-bundle>
</application>
<converter>
<converter-id>theme</converter-id>
<converter-class>org.primefaces.showcase.convert.ThemeConverter</converter-class>
</converter>
<factory>
<exception-handler-factory>org.primefaces.application.exceptionhandler.PrimeExceptionHandlerFactory</exception-handler-factory>
</factory>
<!-- for spring security -->
<lifecycle>
<phase-listener>edu.wctc.maven.glassfish.jsfsecure.util.LoginErrorPhaseListener</phase-listener>
</lifecycle>
更新:
我的build.properties:
jsfVersion=${jsfVersion}
primefacesVersion=${primefacesVersion}
我找到了解决方案,它必须在 pom.xml 中定义。我删除了 <profile>
部分,它已被定义:
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>edu.wctc.maven.glassfish</groupId>
<artifactId>jsfsecure_copy</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>jsfsecure_copy</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<org.springframework.version>4.0.3.RELEASE</org.springframework.version>
<spring-security.version>3.2.5.RELEASE</spring-security.version>
<junit.version>4.11</junit.version>
<aspectj.version>1.7.1</aspectj.version>
</properties>
<dependencies>
[...]
</dependencies>
<repositories>
[...]
</repositories>
<build>
[...]
</build>
<profiles>
<profile>
<id>stable</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<jsfVersion>Mojarra-2.2.7</jsfVersion>
<primefacesVersion>PrimeFaces-5.1</primefacesVersion>
</properties>
<dependencies>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>5.1</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.2.7</version>
</dependency>
</dependencies>
</profile>
</profiles>
所以我现在的理解是 EL 表达式 在 template.xhtml
#{build.primefacesVersion}
和 #{build.jsfVersion}
将在 \src\main\resources\build.properties
中查找jsfVersion=${jsfVersion}
primefacesVersion=${primefacesVersion}
引用了 pom.xml
<properties>
<jsfVersion>Mojarra-2.2.7</jsfVersion>
<primefacesVersion>PrimeFaces-5.1</primefacesVersion>
</properties>