gpt4 book ai didi

java - 如何在 JSF 中设置变量?

转载 作者:搜寻专家 更新时间:2023-11-01 02:31:20 26 4
gpt4 key购买 nike

我的代码在这里迭代每一行的列和 rendered每次迭代都会计算属性,调用 testRule .

<p:dataTable ...>
<p:column ...>
...
</p:column>

<p:column rendered="#{managedBean.testRule('rules.canDoActions')}">
<!-- Action buttons -->
<h:commandButton ...>
<h:commandButton ...>
</p:column>
</p:dataTable>

为了获得更好的性能,我想将结果设置为一个变量,但我不知道如何......它会变成这样:

   <?:??? var="canDoActions" value="#{managedBean.testRule('rules.canDoActions')}">
<p:dataTable ...>
<p:column ...>
...
</p:column>

<p:column rendered="#{canDoActions}">
<!-- Action buttons -->
<h:commandButton ...>
<h:commandButton ...>
</p:column>
</p:dataTable>

此外,我不允许使用核心标签库,这意味着 <c:set ../>毫无疑问。

在该范围内,我如何设置变量?或者,如果不可能,您有什么建议来解决性能问题?

最佳答案

I'm not allowed to use Core Tag Library, wich means that <c:set ../> is out of question

然后您可以将它存储在 Bean 本身上并检查它是否为 null calculateRules 并设置值或简单地返回。

例如:

HashMap<String, Boolean> map;

public boolean testRule(String stringInput) {
Boolean result = map.get(stringInput);

if (result == null) {
//calculate and set in map
}

return result;
}

关于java - 如何在 JSF 中设置变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8580295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com