jsf - Primefaces中组件的补丁
问题描述
我正在使用 Primefaces 6.2,因为我们的项目仍在 JDK 6 上运行。计划迁移到 JDK 8+,但短期内不可能。这意味着我无法迁移到更高版本的 primefaces。
在 Primefaces 6.2 中,自动完成功能存在一个小错误,我想通过修改 autcomplete.js 文件来修复它。
是否可以从生成的 components.js 文件中删除文件( autocomplete.js )并提供自定义文件?
我已经看到 primefaces 压缩了 JS 文件并将它们全部添加到文件 components.js 中。
因此,我需要阻止文件被添加/压缩,然后找到一种方法来添加我的文件。
解决方案
您可以覆盖它或使用omnifacesCDNResourceHandler
并将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
您可以使用 OmniFaces 的 CDN 资源处理程序更改primefaces资源查找。将原始 javascript 文件复制到其他位置,对其进行编辑并在 Web 配置中设置 CDN 处理程序,例如:
primefaces:components.js=/resources/primefaces/6.2/components.js
`
推荐阅读
- ksh - 如何在我想要读取的 ksh 函数中打印日志消息?
- php - PHP:致命错误:未捕获的错误:在 demo.php 中找不到类'abc\abc'
- sqlbase - VTI71.DLL在c#项目中报错du0x80004005
- javascript - 如何在 Laravel 中使用带有 JSON 数据的 Chartjs 显示图表
- codeigniter - Firebase 网络推送通知
- swift - 如何使用 ARKit 检测触摸并显示新的 SCNPlane?
- javascript - 引导弹出模型在我的网页上不起作用
- r - 提取用户定义函数的功能信息
- javascript - 用于检查当前页面中加载的所有通量事件的事件 - Flux、React
- python - 在python中解析一个jsonArray