Primefaces:ProgressBar不使用移动渲染工具包进行渲染

时间:2014-11-28 13:54:19

标签: jsf primefaces http-status-code-404

当我尝试在启用了移动渲染工具包的网站中渲染p:progressBar时,该组件无法渲染(我看到了我自己的css样式的组件)。 我只是在浏览器的错误控制台中得到两个404:

404 (Not Found) (undefined.css.xhtml, line 0) $HOSTADRESS$/javax.faces.resource/undefined/undefined.css.xhtml?ln=primefaces&v=5.1
404 (Not Found) (undefined.js.xhtml, line 0) $HOSTADRESS$/javax.faces.resource/undefined/undefined.js.xhtml?ln=primefaces&v=5.1

我确定这是一个错误,我将打开一个问题(Issue 7717)。我只是想显示一个静态进度条,这个用例有一个简单的解决方法吗?顺便说一句。我正在使用PrimeFaces 5.1

这是一个SSCCE:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:p="http://primefaces.org/ui"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:pm="http://primefaces.org/mobile">
<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</h:head>
<f:view locale="de_DE" encoding="UTF-8" contentType="text/html" renderKitId="PRIMEFACES_MOBILE">
    <h:body>
        <p:commandButton value="Renders"/>
<!--doesn't render-->
        <p:progressBar value="#{70}" labelTemplate="#{70}"/>
    </h:body>
</f:view>
</html>

1 个答案:

答案 0 :(得分:0)

今天我再次解决了这个老问题,并在this answer找到了解决方法 所以我添加了

<h:outputScript target="body">
    var originalPrimeFacesCw = PrimeFaces.cw;
    PrimeFaces.cw = function(name, id, options, resource) {
        resource = resource || name.toLowerCase();
        originalPrimeFacesCw.apply(this, [name, id, options, resource]);
    };
</h:outputScript>

到我的移动模板并通过css设置进度条的背景颜色:

.ui-progressbar .ui-widget-header {
    background-color: SOMECOLOR; 
}

首先,我使用<o:onloadScript>加载了变通办法脚本,但是如果您在页面上执行了某些操作,则会获得每个ajax请求,从而产生RangeError

我仍然希望能够正式修复。