2013-04-03 128 views
2

我需要调用像${bean.data1A}这样的属性,但属性名称中的数字是变量。类似于${bean.data{$n}A},但当n == 1时,它的计算结果为${bean.data1A}。我该如何实现?使用属性名称中的变量调用bean属性

我有一个像一堆属性:

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

因为我无法通话,因为旧的JSP服务器我不得不使用从一个bean参数化方法。


更新:作为对推理对于这一点,我有数据(18或27行7列)的一个网格,从豆显示数据。在这个bean中,有一个向量,其中每个元素都包含一个保存行数据的对象(a,b,c,d,e,f,&)g可以使用向量)。

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

+0

是不是'F:在版本setPropertyActionListener'您正在使用? –

+0

我打电话给一个get方法来检索一个值,而不是一个方法 – ZakTaccardi

+0

你为什么不给我们更详细的描述你的情况。它可以帮助很多。我无法看到发送参数来检索值的需要。如果你需要发送一个参数,比'f:setPropertyActionListener'应该有效。 –

回答

4

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

因此,所有的一切,这应该这样做:

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

工作得很好,谢谢! – ZakTaccardi

+0

不客气。 – BalusC