加载主题时出错,无法找到" theme.css" primefaces主题库的资源

时间:2015-03-13 05:51:31

标签: java jsf primefaces themes

我使用primefaces-5.1.jar and javax.faces-2.2.0.jar (i got some error for javax.faces-2.2.9.jar`)

也可以将其放在web.xml

<context-param>
    <param-name>primefaces.THEME</param-name>
    <param-value>#{Helper.theme}</param-value>
</context-param>

然后我收到了错误:

Error loading theme, cannot find "theme.css" resource of "primefaces-bootstrap" library

javax.faces.FacesException: Error loading theme, cannot find "theme.css" resource of "primefaces-bootstrap" library
    at org.primefaces.renderkit.HeadRenderer.encodeTheme(HeadRenderer.java:134) ~[primefaces-5.1.jar:5.1]
    at org.primefaces.renderkit.HeadRenderer.encodeBegin(HeadRenderer.java:81) ~[primefaces-5.1.jar:5.1]
    at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:869) ~[javax.faces-2.2.0.jar:2.2.0]
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1854) ~[javax.faces-2.2.0.jar:2.2.0]
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) ~[javax.faces-2.2.0.jar:2.2.0]
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:443) ~[javax.faces-2.2.0.jar:2.2.0]
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131) ~[javax.faces-2.2.0.jar:2.2.0]
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) ~[javax.faces-2.2.0.jar:2.2.0]
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) ~[javax.faces-2.2.0.jar:2.2.0]
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) ~[javax.faces-2.2.0.jar:2.2.0]
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) ~[javax.faces-2.2.0.jar:2.2.0]

但是当我使用javax.faces-2.1.25.jar时,上面的错误已经解决,但又出现了另一个错误:

com.sun.faces.context.flash.ELFlash getCurrentFlashManager
SEVERE: JSF1094: Could not decode flash data from incoming cookie value Invalid characters in decrypted value.  Processing will continue, but the flash is unavailable for this request.

我的问题是primefaces-5.1.jar的兼容库?

由于

5 个答案:

答案 0 :(得分:4)

您是否将Primfaces Theme Maven dependecy放入pom.xml?

<dependency>
  <groupId>org.primefaces.extensions</groupId>
  <artifactId>all-themes</artifactId>
  <version>1.0.8</version>
  <scope>compile</scope>
</dependency>

根据官方文档建议使用Primefaces主题的10.0.10版本,包括添加自己的存储库,这是无法正常工作,我仍然收到错误。最后一个版本的主题在中央存储库maven中不可用。

在没有有效解决方案的大量研究之后,我需要选择最新版本的Maven存储库,该存储库仅适用于1.0.8版本。但我的项目仍然收到以下警告:

  

警告:JSF1064:无法从库中找到或提供资源images / ui-bg_highlight-hard_70_000000_1x100.png,   primefaces的自举。

     

警告:JSF1064:Nãofoiofíí能够帮助你进行报复,图片/ ui-bg_highlight-hard_70_000000_1x100.png,pela   biblioteca,primefaces-bootstrap。

稍微思考一下我发现了一个解决 bootstrap 主题问题的简单解决方案,只需通过替换的属性background将新路径传递给错过的图像ui-widget-shadow css类。

解决方案是下载缺少的图像,可以在以下链接中找到:

| Link 1 | Link 2 | Link 3 | (所有链接均指: ui-bg_highlight-hard_70_000000_1x100.png

链接3 :www.fulig.com.br/en/wp-content/plugins/wp_w2_contact_form/css/ui/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png

将这些图像放在项目的文件夹中,并仅覆盖对图像具有无效引用的属性。使用以下代码:

.ui-widget-shadow {
   background-image: url("images/ui-bg_highlight-hard_70_000000_1x100.png.jsf") !important;
}

其中URL是直接从上面的链接获得的图像的路径。

该问题在以下讨论: forum.primefaces.org/viewtopic.php?f=9&t=19250&start=10

我希望这有帮助! ; - )

答案 1 :(得分:1)

将依赖项添加到pom.xml

<dependency>
    <groupId>org.primefaces</groupId>
    <artifactId>primefaces</artifactId>
    <version>5.0</version>
</dependency>
<dependency>  
    <groupId>org.primefaces.themes</groupId>  
    <artifactId>cupertino</artifactId>  
    <version>1.0.8</version>  
</dependency>

将配置添加到web.xml

<context-param>
    <param-name>primefaces.THEME</param-name>
    <param-value>#{LayoutBean.applicationTheme}</param-value>
</context-param>

创建一个应用程序范围的eager bean,以便在加载JSF应用程序时加载

@ManagedBean(name = "LayoutBean", eager = true)
@ApplicationScoped
public class LayoutBean {

    private String theme = "cupertino";

    public String getApplicationTheme() {
        return theme;
    }
}

答案 2 :(得分:1)

  • 确保在pom.xml中添加了依赖项(如果这是高级主题,请将手动jar添加到maven本地存储库,更多信息here

    <dependency>
      <groupId>org.primefaces.themes</groupId>
      <artifactId>{theme-name-here}</artifactId>
      <version>{version-here}</version>
    </dependency>
    
  • 在web.xml中添加正确的配置以使用此主题。

    <context-param>
      <param-name>primefaces.THEME</param-name>
      <param-value>#{theme-name-here}</param-value>
    </context-param>
    

我有一个案例,一切都设置正确,但消息“错误加载主题,找不到”theme.css“primefaces主题库的资源”仍然出现。我解决了它:

  • Eclipse中的项目 - &gt;干净... - &gt;清理所有项目
  • 右键点击项目 - &gt;刷新
  • 转到服务器视图 - &gt;右键单击Tomcat安装 - &gt;清理并发布
  • 运行app。

这删除所有缓存文件,适合我。

答案 3 :(得分:0)

primefaces maven存储库中所有最新版本的主题都与5.1

兼容

答案 4 :(得分:0)

你是否只包括了primefaces jar或主题?例如。使用maven,你需要一个关于primefaces的依赖项和一个主题或所有主题的依赖项。我忘了后者并得到了同样的例外。看看这里(向下滚动到&#34;安装&#34;):Primefaces/Themes