gpt4 book ai didi

jsf - 如何在 EL JSF 中使用方括号

转载 作者:行者123 更新时间:2023-12-01 09:33:28 25 4
gpt4 key购买 nike

我见过有人在 JSF 中使用方括号,我不确定我是否正确理解了它的用法。所以也许 JSF 大师可以帮助我理解它

1.所以假设我有这个

#{bean.x}

而 x 是一个二维数组 (x[][]),我该如何显示 x[0]使用EL?我想在这种情况下我需要使用方括号。我想我用 #{bean.x[0]} ,但我有异常(exception)。

2.第二种场景来自BalusC代码 Pass Argument to a composite-component action attribute
<composite:interface>
<composite:attribute name="bean" type="java.lang.Object" />
<composite:attribute name="action" type="java.lang.String" />
<composite:attribute name="property" type="java.lang.String" />
</composite:interface>
<composite:implementation>
<h:commandButton value="Remove" action="#{cc.attrs.bean[cc.attrs.action]}">
<f:setPropertyActionListener target="#{cc.attrs.bean[cc.attrs.property]}" value="Somestring" />
</h:commandButton>
</composite:implementation>

我了解代码在做什么并且它运行得很好,但如果有人能解释在这种情况下方括号的用途,我将不胜感激。非常感谢

最佳答案

I think I use #{bean.x[0]}, but I got exception.



不幸的是,您没有分享异常详细信息。但这应该可行,前提是有 getX()返回非 null 的方法给定索引确实存在的数组。

The second scenario is from BalusC code Pass Argument to a composite-component action attribute



在这种特殊情况下,大括号表示法 []使您能够使用动态属性名称或操作方法名称。以下当然不起作用
#{cc.attrs.bean.cc.attrs.action}

它只会尝试调用 bean.getCc().getAttrs().action() .

大括号符号也用于 Map<K, V> .它允许您指定包含点的键(反过来不应将其作为属性进行 EL 评估)
#{bean.map['key.with.dots']}

它当然也允许你指定一个动态映射键:
#{bean.map[otherBean.mapKey]}

也可以看看:
  • Our EL wiki page
  • 关于jsf - 如何在 EL JSF 中使用方括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12343410/

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