如何在带有弹簧安全性的展示网站上显示primefaces版本?

时间:2015-01-26 21:29:17

标签: primefaces

我在glassfish 4服务器上运行了一个经过修改的primefaces展示,大多数工作正常,但是版本没有正确显示(在网站的底部)。我把原始版本与弹簧安全性结合起来。

template.xhtml中的代码

Running #{build.primefacesVersion} on #{build.jsfVersion}.

原始版本给了我

Running PrimeFaces-5.1 on Mojarra-2.2.7

修改后的版本显示

Running ${primefacesVersion} on ${jsfVersion}.

on http://localhost:8080/jsfsecure_copy/faces/index_1.xhtml

问题可能出在我的配置中?

faces-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}

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,必须在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>

所以我现在理解的是template.xhtml中的 EL表达式

#{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>