Primefaces 13 如何避免警告“无法自动确定'惰性'属性,回退到 false”。

Primefaces 13 How to avoid the warning "Unable to automatically determine the `lazy` attribute, fallback to false."

提问人:Rose Vandersteene 提问时间:11/17/2023 最后编辑:Rose Vandersteene 更新时间:11/18/2023 访问量:33

问:

我正在使用 PF 13.0.3。我在 UITable 上有这个警告“无法自动确定属性,回退到 false。在组件上定义属性,或者确保该属性未解析为 。clientId:tblOrderlines]]” 这只是一个警告,但最好避免它们。lazylazyvaluenull

我遵循了贾斯珀·德弗里斯(Jasper de Vries)的提示

应采取哪些措施来绕过或解决需要定义惰性属性或不会导致 null 的 PrimeFaces 异常?

通过在 UITable 上设置全局属性 lazy=true,如 https://primefaces.github.io/primefaces/11_0_0/#/core/globalattributes 中所述

if (component instanceof UITable){
    component.getAttributes().put("lazy", true);
}

但是现在我看到这个警告,除了 UITable 之外的所有组件

即使我将其设置在 if 块之外,这些多个警告也不会消失。

我应该返回到早期版本的 PF 吗?

任何提示都值得赞赏,谢谢

读取 BalusC 的提示后,返回一个空集合: 我使用许多表,其中很多表最初是空的,只有当且仅当 用户执行操作。如果用户从不执行任何操作,则此提示可能会导致创建许多无用的空集合。 不建议返回,因为此集合是不可变的。Collections.emptyList()

也许我应该创建一个自定义并添加一个方法来测试,具体取决于可以填充表的预期数据,是应该返回还是代替 nullListDataModelgetWrappedData()Collections.emptyList()new ArrayList()

JSF Primefaces

评论

1赞 BalusC 11/17/2023
只是当集合为空时不要返回,而是空集合。符合标准的 Java 集合编码约定。另请参阅其他 rules.sonarsource.com/java/RSPEC-1168null
0赞 Rose Vandersteene 11/18/2023
也许这个技巧可能会导致创建许多无用的空集合?我用我的思考补充了原来的问题
0赞 tandraschko 11/18/2023
使用 Collections.emptyList 然后;)
0赞 Rose Vandersteene 11/19/2023
@tandraschko Collections.emptyList() 是不可变的 - 请参阅我在更新的问题中的反思
0赞 tandraschko 11/20/2023
如果你的数据是空的,那么返回一个不可变的列表有什么问题?

答: 暂无答案