Primefaces组件 - colorPicker:弹出窗口不渲染,

时间:2013-11-08 12:44:44

标签: jsf-2 primefaces

我在JBoss webapp中集成了两个Primefaces“p:colorPicker”,一个“p:inputTextarea”和两个“p:commandButton”。我们的想法是选择一种颜色并在点击“p:commandButton”“更新URL”后通过ajax更新“p:inputTextarea”中提供的链接(请找到下面的代码)。

这是我尝试将Primefaces整合到我的webapp中(通过Maven)。在运行应用程序时,我可以看到“p:inputTextarea”和两个“p:commandButtons”正确呈现。我可以调整“p:inputTextarea”的大小,然后单击“更新URL”,刷新“p:inputTextarea”。因此我假设Primefaces的集成有效。

我遇到的问题是“p:colorPicker”: 我可以看到按钮的Primefaces风格,但colorPicker弹出窗口没有被显示,因此我无法选择任何颜色。在这种情况下,我使用默认模式。当我尝试使用mode = inline时,整个组件不会被渲染。

您能否就如何解决此问题给我一些提示? 如果您需要更多信息或代码,请与我们联系。

提前谢谢你,

艾伦

以下是代码:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
template="WEB-INF/templates/default.xhtml">

<ui:define name="content">
    <h1>Spendenformular bearbeiten</h1>



    <h:form>

        <h:panelGrid columns="2">
            <h:outputLabel value="Hintergrundfarbe:"/>
            <p:colorPicker id="bgColor"
                value="#{spendeFormEditController.bgColor}"
                widgetVar="bgPicker">
            </p:colorPicker>
            <h:outputLabel value="Textfarbe:"/>
            <p:colorPicker id="textColor"
                value="#{spendeFormEditController.textColor}"
                widgetVar="textPicker">
            </p:colorPicker>
            <h:outputLabel value="URL des Formulars:" />
            <p:inputTextarea id="url" rows="6" cols="30" readonly="true"
                value="#{spendeFormEditController.url}" />
        </h:panelGrid>

        <p:commandButton value="Update URL" update="url" />
        <p:commandButton value="OK"
            action="#{spendeFormEditController.doOk}" ajax="false"/>

    </h:form>

</ui:define>

以防我使用的模板:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.comcom/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">

<h:head>
    <title>My-Aktion</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <h:outputStylesheet name="css/screen.css" />
</h:head>

<h:body>
    <div id="container">
        <div id="header">
            <p>
                Beispielanwendung <b>My-Aktion</b> - Workshop Java EE 7
            </p>
        </div>
        <div id="content">
            <ui:insert name="content">
                [Template content will be inserted here]
            </ui:insert>
        </div>
        <div id="footer">
            <p> (C) 2013 com.fantasma</p>
        </div>
    </div>

</h:body>

编辑: 嗨Xtreme Biker:Thanx很多你的回复!

我使用的是Primefaces 3.5版和Mozlla Firefox 25.0

与此同时,我尝试对我的webapp的另一个视图进行一些更改,我可以看到实际PF不起作用!

正如我之前所说的,我将JBoss与Maven一起使用。所以我通过Maven安装了PF,在pom.xml中进行了必要的更改。据我所知,PF .jar已被下载到.m2文件中。

我可以在Eclipse中找到.jar:target-&gt; my-aktion(= project) - &gt; WEB-INF-&gt; lib。

我可以找到两个版本的PF! 3.3和3.5可能存在冲突吗?我是否必须单独检查JBoss中的部署(我该怎么做)?

提前谢谢你,艾伦

这是pom.xml:      http://maven.apache.org/maven-v4_0_0.xsd">     4.0.0

<groupId>com.fantasma</groupId>
<artifactId>my-aktion</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>Java EE 6 webapp project</name>
<description>A starter Java EE 6 webapp project for use on JBoss AS 7.1 / EAP 6, generated from the jboss-javaee6-webapp archetype</description>

<properties>
    <!-- Explicitly declaring the source encoding eliminates the following 
        message: -->
    <!-- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered 
        resources, i.e. build is platform dependent! -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!-- Define the version of JBoss' Java EE 6 APIs and Tools we want 
        to import. -->
    <jboss.bom.version>1.0.0.Final</jboss.bom.version>
    <!-- Alternatively, comment out the above line, and un-comment the 
        line below to use version 1.0.0.M12-redhat-1 which is a release certified 
        to work with JBoss EAP 6. It requires you have access to the JBoss EAP 6 
        maven repository. -->
    <!-- <jboss.bom.version>1.0.0.M12-redhat-1</jboss.bom.version>> -->
</properties>


<dependencyManagement>
    <dependencies>
        <!-- JBoss distributes a complete set of Java EE 6 APIs including 
            a Bill of Materials (BOM). A BOM specifies the versions of a "stack" (or 
            a collection) of artifacts. We use this here so that we always get the correct 
            versions of artifacts. Here we use the jboss-javaee-6.0-with-tools stack 
            (you can read this as the JBoss stack of the Java EE 6 APIs, with some extras 
            tools for your project, such as Arquillian for testing) and the jboss-javaee-6.0-with-hibernate 
            stack you can read this as the JBoss stack of the Java EE 6 APIs, with extras 
            from the Hibernate family of projects) -->
        <dependency>
            <groupId>org.jboss.bom</groupId>
            <artifactId>jboss-javaee-6.0-with-tools</artifactId>
            <version>${jboss.bom.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.jboss.bom</groupId>
            <artifactId>jboss-javaee-6.0-with-hibernate</artifactId>
            <version>${jboss.bom.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>3.5</version>
        </dependency>

    </dependencies>
</dependencyManagement>

<dependencies>

    <!-- First declare the APIs we depend on and need for compilation. 
        All of them are provided by JBoss AS 7 -->

    <!-- Import the CDI API, we use provided scope as the API is included 
        in JBoss AS 7 -->
    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Import the Common Annotations API (JSR-250), we use provided 
        scope as the API is included in JBoss AS 7 -->
    <dependency>
        <groupId>org.jboss.spec.javax.annotation</groupId>
        <artifactId>jboss-annotations-api_1.1_spec</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Import the JAX-RS API, we use provided scope as the API is included 
        in JBoss AS 7 -->
    <dependency>
        <groupId>org.jboss.spec.javax.ws.rs</groupId>
        <artifactId>jboss-jaxrs-api_1.1_spec</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Import the JPA API, we use provided scope as the API is included 
        in JBoss AS 7 -->
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Import the EJB API, we use provided scope as the API is included 
        in JBoss AS 7 -->
    <dependency>
        <groupId>org.jboss.spec.javax.ejb</groupId>
        <artifactId>jboss-ejb-api_3.1_spec</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- JSR-303 (Bean Validation) Implementation -->
    <!-- Provides portable constraints such as @Email -->
    <!-- Hibernate Validator is shipped in JBoss AS 7 -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <scope>provided</scope>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!-- Import the JSF API, we use provided scope as the API is included 
        in JBoss AS 7 -->
    <dependency>
        <groupId>org.jboss.spec.javax.faces</groupId>
        <artifactId>jboss-jsf-api_2.1_spec</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Now we declare any tools needed -->


    <!-- Annotation processor to generate the JPA 2.0 metamodel classes 
        for typesafe criteria queries -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-jpamodelgen</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Annotation processor that raising compilation errors whenever 
        constraint annotations are incorrectly used. -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator-annotation-processor</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Needed for running tests (you may also use TestNG) -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>test</scope>
    </dependency>

    <!-- Optional, but highly recommended -->
    <!-- Arquillian allows you to test enterprise code such as EJBs and 
        Transactional(JTA) JPA from JUnit/TestNG -->
    <dependency>
        <groupId>org.jboss.arquillian.junit</groupId>
        <artifactId>arquillian-junit-container</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.jboss.arquillian.protocol</groupId>
        <artifactId>arquillian-protocol-servlet</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.jboss.spec.javax.servlet</groupId>
        <artifactId>jboss-servlet-api_3.0_spec</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.primefaces</groupId>
        <artifactId>primefaces</artifactId>
        <scope>provided</scope>
    </dependency>
</dependencies>

<build>
    <!-- Maven will append the version to the finalName (which is the 
        name given to the generated war, and hence the context root) -->
    <finalName>${project.artifactId}</finalName>
    <plugins>
        <!-- Compiler plugin enforces Java 1.6 compatibility and activates 
            annotation processors -->
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
            <configuration>
                <!-- Java EE 6 doesn't require web.xml, Maven needs to 
                    catch up! -->
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
        <!-- The JBoss AS plugin deploys your war to a local JBoss AS 
            container -->
        <!-- To use, run: mvn package jboss-as:deploy -->
        <plugin>
            <groupId>org.jboss.as.plugins</groupId>
            <artifactId>jboss-as-maven-plugin</artifactId>
            <version>7.1.1.Final</version>
        </plugin>
    </plugins>
</build>

<profiles>
    <profile>
        <!-- The default profile skips all tests, though you can tune 
            it to run just unit tests based on a custom pattern -->
        <!-- Seperate profiles are provided for running all tests, including 
            Arquillian tests that execute in the specified container -->
        <id>default</id>
        <repositories>  
            <repository>
                <id>prime-repo</id>
                <name>Primefaces Maven Repository</name>
                <url>http://repository.primefaces.org</url>
            </repository>
        </repositories>

        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.4.3</version>
                    <configuration>
                        <skip>true</skip>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>

    <profile>
        <!-- An optional Arquillian testing profile that executes tests 
            in your JBoss AS instance -->
        <!-- This profile will start a new JBoss AS instance, and execute 
            the test, shutting it down when done -->
        <!-- Run with: mvn clean test -Parq-jbossas-managed -->
        <id>arq-jbossas-managed</id>
        <repositories>  
            <repository>
                <id>prime-repo</id>
                <name>Primefaces Maven Repository</name>
                <url>http://repository.primefaces.org</url>
            </repository>
        </repositories>
        <dependencies>
            <dependency>
                <groupId>org.jboss.as</groupId>
                <artifactId>jboss-as-arquillian-container-managed</artifactId>
                <scope>test</scope>
            </dependency>

        </dependencies>
    </profile>

    <profile>
        <!-- An optional Arquillian testing profile that executes tests 
            in a remote JBoss AS instance -->
        <!-- Run with: mvn clean test -Parq-jbossas-remote -->
        <id>arq-jbossas-remote</id>
        <repositories>  
            <repository>
                <id>prime-repo</id>
                <name>Primefaces Maven Repository</name>
                <url>http://repository.primefaces.org</url>
            </repository>
        </repositories> 
        <dependencies>
            <dependency>
                <groupId>org.jboss.as</groupId>
                <artifactId>jboss-as-arquillian-container-remote</artifactId>
                <scope>test</scope>
            </dependency>

        </dependencies>
    </profile>

    <profile>
        <!-- When built in OpenShift the 'openshift' profile will be 
            used when invoking mvn. -->
        <!-- Use this profile for any OpenShift specific customization 
            your app will need. -->
        <!-- By default that is to put the resulting archive into the 
            'deployments' folder. -->
        <!-- http://maven.apache.org/guides/mini/guide-building-for-different-environments.html -->
        <id>openshift</id>
        <repositories>  
            <repository>
                <id>prime-repo</id>
                <name>Primefaces Maven Repository</name>
                <url>http://repository.primefaces.org</url>
            </repository>
        </repositories>
        <dependencies>

        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.1.1</version>
                    <configuration>
                        <outputDirectory>deployments</outputDirectory>
                        <warName>ROOT</warName>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>

</profiles>

0 个答案:

没有答案