使用属性名称中的变量调用bean属性

时间:2013-04-03 18:00:12

标签: java jsp jstl javabeans el

我需要调用${bean.data1A}之类的属性,但属性名称中的数字是变量。像${bean.data{$n}A}这样的东西,但当n ==时,它会评估为${bean.data1A}。我怎样才能实现这个目标?

我有很多属性,如:

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

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


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

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

1 个答案:

答案 0 :(得分:4)

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

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

<c:set var="property" value="data${n}A" />
<c:out value="${bean[property]}" />