Jsf Primefaces中零部件的面片
我正在使用Primefaces 6.2,因为我们的项目仍然在JDK 6上运行。 迁移到JDK 8+是有计划的,但短期内不可能。这意味着我无法迁移到更高版本的primefaces 在Primefaces 6.2中,自动完成功能有一个小错误,我想通过修改autcomplete.js文件来修复它 是否可以从生成的components.js文件中删除文件(autocomplete.js)并提供自定义文件 我已经看到primefaces压缩JS文件,并将它们全部添加到components.JS文件中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文件中 因此
因此,我需要阻止添加/压缩文件,然后找到一种方法来添加我的文件。您可以覆盖它,或者使用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轻松地在外部修补文件。