将静态文本和EL表达式组合为另一个EL表达式

时间:2013-03-26 11:58:21

标签: jsp el

所以我检查了其他相同的问题,但它们并不完全相同,或者对我的情况有不同的答案。这就是我所拥有的: 在服务器上我设置了一个属性

  

request.getSession()。setAttribute(tableField.getSiglaId()+“_ rowSize”,new Integer(tableSize));

在jsp文件中我试图获取此属性值,但由于您无法嵌套el表达式,我使用核心标记库来设置新变量:

<c:set var="trueRowSize" value="${field.siglaId}_rowSize" />

输入$ {trueRowSize}将输出“timers_rowSize”。但我想获得具有所述名称的属性。如果我输入$ {timers_rowSize},它将给出我想要的正确值。

使用:

 ${requestScope[trueRowSize]} 

似乎也没有工作。

2 个答案:

答案 0 :(得分:1)

您将属性放在会话中:

request.getSession().setAttribute(...);

所以你不会在requestScope中找到它,但是在sessionScope中找到它:

${sessionScope[trueRowSize]} 

答案 1 :(得分:1)

实际上你可以嵌套表达式。好吧,有点。 c:set tag可以从它自身的主体获取它的值,所以你可以得到如下内容:

<c:set var="trueRowSizeText">
  My true row size is: <c:out value='request.getSession().setAttribute(tableField.getSiglaId()+"_rowSize",new Integer(tableSize));'/>
</c:set>

另请查看此类似问题 - Nested expression in JSP/JSTL