【问题标题】:How to display the primefaces version on showcase website with spring security?如何在带有 Spring Security 的展示网站上显示 primefaces 版本?
【发布时间】:2015-01-26 21:29:16
【问题描述】:

我在 glassfish 4 服务器上运行了一个修改过的 primefaces 展示,大多数东西都可以正常工作,但是版本显示不正确(在网站底部)。我采用了原始版本并将其与 Spring Security 结合起来。

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.

也许问题出在我的配置上?

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}

【问题讨论】:

    标签: primefaces


    【解决方案1】:

    我找到了解决方案,它必须在 pom.xml 中定义。我删除了定义它的 &lt;profile&gt; 部分:

    <?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>
    

    【讨论】:

      猜你喜欢
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 2013-01-27
      • 2014-11-19
      • 1970-01-01
      • 2011-12-13
      相关资源
      最近更新 更多