如何使用jstl el调用动态嵌套属性

How to use jstl el to call a dynamic nested property

如果您想使用动态密钥从特定 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>

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

${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年后我们就这样离开了,因为它似乎对性能没有太大影响。

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