在Tomcat的netbeans项目中使用Bootsfaces

时间:2015-06-25 08:37:05

标签: jsf tomcat netbeans bootsfaces

我使用Tomcat创建了一个带有JSF 2.2的netbeans(7.31)新Web项目,我下载并添加了Bootsfaces-OSP-dist-0.7.jar到我的项目中。 我在Bootsfaces快速入门指南中做了所有相关的事情,包括所有关于web.xml,faces-config.xml和theme css支持的内容。 我对maven pom.xml构建文件一无所知(使用netbeans IDE我不需要在pom.xml中做任何事情,我不知道如何在netbeans IDE的项目中做) 我还在快速入门指南(带<h:head/>标签)中创建了一个index.xhtml页面 当我运行我的项目时,所有外观都没有任何样式。

有人可以帮助我逐步指导在使用netbeans IDE,JSF 2.2和tomcat创建的项目中使用bootsface吗?

这是我的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <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>/faces/*</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.faces</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/javax.faces.resource/*</url-pattern>
    </servlet-mapping>

    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
    </welcome-file-list>
    <context-param>
        <param-name>BootsFaces_USETHEME</param-name>
        <param-value>true</param-value>
    </context-param>
</web-app>

`

2 个答案:

答案 0 :(得分:0)

嗯,一切都适合我。我做了以下步骤:

  1. 我在Netbeans 8.0.2中创建了一个新的Web项目并添加了JSF 2.2(库,然后添加库)。
  2. 从他们的网站下载最新的Bootsfaces JAR并将其添加到Project(Library,然后添加JAR / Folder)。
  3. 创建了一个新的JSF文件:

    <?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:b="http://bootsfaces.net/ui"
      xmlns:h="http://xmlns.jcp.org/jsf/html">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <b:navBar brand="Brand" brandHref="#" inverse="true">
            <b:navbarLinks>
            <b:navLink value="Home" href="#"></b:navLink>
            <b:navLink value="Link" href="#"></b:navLink>
            <b:navLink value="Link" href="#"></b:navLink>
            </b:navbarLinks>
        </b:navBar>
    </h:body>
    

  4. 请不要忘记这部分xmlns:b="http://bootsfaces.net/ui"

答案 1 :(得分:0)

至少有三个陷阱会让你的主题消失:

  • 您是否已将主题添加到web.xml? xml <context-param> <param-name>BootsFaces_USETHEME</param-name> <param-value>true</param-value> </context-param>
  • 请不要在servlet映射中使用文件夹名称。我不确定它是否会导致CSS错误,但肯定会使事情变得更复杂并且可能会使资源映射器混淆。
  • 出于某种原因,如果将OmniFaces的CombinedResourceHandler添加到faces-config.xml,BootsFaces的效果会更好。或者,您可以添加UnmappedResourceHandler(它是BootsFaces的一部分)。通常,BootsFaces需要其中一个来查找CSS文件和/或字体。另请参阅http://www.bootsfaces.net/integration/OmniFaces.jsf

另一种通常有效的方法是从一个演示项目开始,例如https://github.com/stephanrauh/BootsFaces-Examples