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