2

我需要调用一个类似的属性${bean.data1A},但是属性名称中的数字是一个变量。类似的东西${bean.data{$n}A},但评估为${bean.data1A}n == 1 时。我怎样才能做到这一点?

我有一堆属性,例如:

${bean.data1A}
${bean.data2A}
${bean.data3A}
etc

因为我必须使用旧的 JSP 服务器,所以我不能从 bean 调用参数化方法。


更新:至于这样做的原因,我有一个数据网格(18 或 27 行和 7 列)显示来自 bean 的数据。在这个 bean 中,有一个向量,其中每个元素都包含一个对象,该对象保存该行的数据(a、b、c、d、e、f 和 g 可以使用向量)。

要使用网格,我可以更改任意数量的单元格,然后单击“全部更新”按钮。我想使用 ${n} 作为行号变量的原因是行数将根据显示数据的年份而变化。我目前正在使用 ${n} 变量在网格的行标签上打印正确的行号

4

1 回答 1

4

您可以使用EL 的大括号表示法[]来使用变量而不是静态字符串作为属性名称。您可以使用JSTL <c:set>在 EL 范围内创建一个新变量。

所以,总而言之,这应该做:

<c:set var="property" value="data${n}A" />
<c:out value="${bean[property]}" />
于 2013-04-03T18:20:51.343 回答