1

我一直在尝试使用 BootsFaces。我已确保满足以下要求:

  1. Java EE 1.6 以上
  2. jsf-api和jsf-impl 2.2以上的JAR文件
  3. MyFaces api 和 impl 2.2 以上的 JAR 文件
  4. BootsFaces 0.7.0 JAR 文件

此外,我还按照 BootsFaces 文档中列出的正确渲染步骤(更改 web.xml 和 faces-config 文件)

我创建了一个示例 jsf(中)文件并尝试运行它。

我有一个错误说

javax.servlet.ServletException: Error loading theme, cannot find "css/theme.css" resource of "bsf" library
javax.faces.webapp.FacesServlet.service(FacesServlet.java:321)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

*项目结构

Faces-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<faces-config
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"
version="2.2">
<application>
   <resource-handler>net.bootsfaces.render.UnmappedResourceHandler</resource-handler>
</application>    
</faces-config>

网页.xml:

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

中.jsf

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:b="http://bootsfaces.net/ui" xmlns:f="http://java.sun.com/jsf/core"> 
<h:head />

<h:body>
    <b:container>
      <b:row>
        <b:column span="8">
           <b:panel look="primary" title="b:column span='8'">
            Eight columns on medium screens (e.g. small desktop and notebook screens).<br /> Stacked on screens smaller than 992 pixels width.
            <br />

           </b:panel>
        </b:column>
      </b:row>
    </b:container>
</h:body>

4

1 回答 1

1

当 BootsFaces 没有找到它的资源时,我推荐使用CombinedResourceHandlerOmniFaces 的。您已经在使用UnmappedResourceHandlerBootsFaces,它应该可以解决问题,但我建议您仍然尝试 OmniFaces 版本(如果有帮助,请报告)。

这是一个清单,检查我们迄今为止看到的最常见的陷阱:

  1. 确保您已添加<h:head></h:head>标签(即使它是空的)。不要使用 HTML 标记 ( <head />)。
  2. 检查 web.xml 的 URL 模式。许多教程建议将 JSF 文件放入虚拟文件夹中,例如<url-pattern>/pages/</url-pattern>. 不要那样做。像<url-pattern>*.jsf</url-pattern>. 顺便说一句,这是默认设置,因此您可以放心地完全省略 url-pattern。
  3. 如果失败,请添加CombinedResourceHandlerOmniFaces。这总是对我有用。
  4. 检查浏览器中的 URL。也许你输入localhost:8080/index.xhtml而不是localhost:8080/index.jsf
  5. 如果您仍然卡住,请在 BootsFaces GitHub 存储库 ( https://github.com/TheCoder4eu/BootsFaces-OSP/issues ) 上打开一个问题。但首先阅读https://github.com/TheCoder4eu/BootsFaces-OSP/issues/157 - 你的问题可能已经在那里解决了。
于 2015-10-12T19:27:15.153 回答