【问题标题】:How to use jstl el to call a dynamic nested property如何使用jstl el调用动态嵌套属性
【发布时间】:2015-06-12 14:25:20
【问题描述】:

如果您想使用动态键从特定 bean 调用 getter 方法,您可以这样使用:

${bean[getterName]}

但是,如果您想使用动态名称调用双重嵌套或三重嵌套属性,它是如何工作的,是否可能?

${bean.propertyA.propertyB} WORKS
${bean[propertyA.propertyB]} DOES NOT WORKS
<c:set var="dynamicKey" value="propertyA.propertyB" />
${bean[dynamicKey]} DOES NOT WORKS

更新:

现在我们是这样处理的:

<c:forTokens items="${property}" delims="." var="item">   
    <c:set var="value" value="${value[item]}" />
</c:forTokens>

【问题讨论】:

    标签: java jsp jstl


    【解决方案1】:

    带有嵌套属性的点表示法与括号表示法:

    ${bean.propertyA.propertyB}
    ${bean[propertyA.propertyB]} ==> Not right, instead
    ${bean["propertyA"]["propertyB"]}
    

    您的 JSTL 示例:

    <c:set var="dynamicKey" value="${bean['propertyA']['propertyB']}" />
    <c:out value="${dynamicKey}" />
    

    【讨论】:

      【解决方案2】:

      2 年后我们就这样离开了,因为它似乎对性能没有太大影响。

      <c:forTokens items="${property}" delims="." var="item"> <c:set var="value" value="${value[item]}" /> </c:forTokens>

      【讨论】:

        猜你喜欢
        • 2014-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-16
        • 1970-01-01
        • 1970-01-01
        • 2012-01-08
        相关资源
        最近更新 更多