Jsf Primefaces中零部件的面片

Jsf Primefaces中零部件的面片,jsf,primefaces,Jsf,Primefaces,我正在使用Primefaces 6.2,因为我们的项目仍然在JDK 6上运行。 迁移到JDK 8+是有计划的,但短期内不可能。这意味着我无法迁移到更高版本的primefaces 在Primefaces 6.2中,自动完成功能有一个小错误,我想通过修改autcomplete.js文件来修复它 是否可以从生成的components.js文件中删除文件(autocomplete.js)并提供自定义文件 我已经看到primefaces压缩JS文件,并将它们全部添加到components.JS文件中 因此

我正在使用Primefaces 6.2,因为我们的项目仍然在JDK 6上运行。 迁移到JDK 8+是有计划的,但短期内不可能。这意味着我无法迁移到更高版本的primefaces

在Primefaces 6.2中,自动完成功能有一个小错误,我想通过修改autcomplete.js文件来修复它

是否可以从生成的components.js文件中删除文件(autocomplete.js)并提供自定义文件

我已经看到primefaces压缩JS文件,并将它们全部添加到components.JS文件中


因此,我需要阻止添加/压缩文件,然后找到一种方法来添加我的文件。

您可以覆盖它,或者使用omnifaces
CDNResourceHandler
将primefaces资源指向您自己的目标,在那里您可以直接编辑文件

JS覆盖示例

if(PrimeFaces.widget.OverlayPanel)
{
    // use proxy pattern to not duplicate original code
    (function() 
    {
        var proxied = PrimeFaces.widget.OverlayPanel.prototype.applyFocus;

        PrimeFaces.widget.OverlayPanel.prototype.applyFocus = function()
        {
            if (this.jq.hasClass("disable-autofocus"))
                return;

            return proxied.apply(this, arguments); 
        };
    })();
}
CDNResourceHandler

您可以使用的CDN resourcehandler更改primefaces资源查找。将原始javascript文件复制到其他位置,编辑它并在web配置中设置CDN处理程序,如:

primefaces:components.js=/resources/primefaces/6.2/components.js

`

您不能重写javascript方法吗?我在过去做过这件事,它确实是可以覆盖的。如果你把你想要修复的JS放在上面,我可以告诉你如何用MonkeyPatch轻松地在外部修补文件。