我使用Tomcat用JSF 2.2创建了一个netbeans(7.31)新的web项目,并下载并将Bootsfaces-OSP-dist-0.7.jar添加到我的项目中。我在Bootsfaces快速入门指南中做了所有相关的事情,包括关于web.xml、faces-config.xml和主题css支持的所有内容。我对maven pom.xml构建文件一无所知(使用netbeans IDE时,我不需要在pom.xml中做任何事情,而且我不知道如何在使用netbeansIDE的项目中做到这一点)我还创建了一个index.xhtml页面,类似于快速入门指南中的相关内容(带有<h:head/>
标签)当我运行我的项目时,所有的外观都没有任何样式。
有人能帮助我一步一步地在用netbeans IDE、JSF 2.2和tomcat创建的项目中进行引导面工作吗?
这是我的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>
`
好吧,一切对我来说都很好。我做了以下步骤:
- 我在Netbeans 8.0.2中创建了一个新的Web项目,并添加了JSF 2.2(Library,然后添加Library)
- 从他们的站点下载了最新的BootsfacesJAR,并将其添加到Project中(Library,然后添加JAR/Folder)
-
创建了一个新的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>
只是不要忘记这部分xmlns:b="http://bootsfaces.net/ui"
。
至少有三个陷阱会让你的主题消失:
- 您是否已将主题添加到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(它是BootsFace的一部分)。通常情况下,BootsFaces需要其中一个来查找CSS文件和/或字体。另请参阅http://www.bootsfaces.net/integration/OmniFaces.jsf.
另一种通常有效的方法是从一个演示项目开始,例如https://github.com/stephanrauh/BootsFaces-Examples.