JSP 标签库中表达式内的动态表达式

Dynamic expression within expression in JSP taglib

在我的代码中,我有这样的场景,我必须引用要放置在另一个 JSP 表达式中的动态名称(使用 JSP 表达式)。简而言之,我必须用另一种表达来表达。

下面的代码导致表达式如下:

“${employeeRow.entryDetails.${compName}”包含无效表达式:javax.el.ELException:解析错误:${employeeRow.entryDetails.${compName}

JSP 代码在这里:

<c:forEach var="employeeRow" items="${yearReportForm.yearReportDetailLst}" varStatus="row">
//some other code placed here  
<c:forEach var="compName" items="${yearReportForm.components}" varStatus="subrow">
<tr>
  <td>${employeeRow.entryDetails.${compName}.componentName}</td>
  <td>${employeeRow.entryDetails.${compName}.monthlyValues.April}</td>
  <td>${employeeRow.entryDetails.${compName}.monthlyValues.May}</td>
</tr>
</c:forEach>
//some other code placed here
</c:forEach>

有人可以帮忙吗?

我找到了上述问题的解决方案。我在这里发布解决方案以帮助其他人

表达式中的任何动态值都应放在方括号“[]”中

这是更正后的代码:

<c:forEach var="employeeRow" items="${yearReportForm.yearReportDetailLst}" varStatus="row">
 //some other code placed here
<c:forEach var="compName" items="${yearReportForm.components}" varStatus="subrow">
<tr>
  <td>${employeeRow.entryDetails.[compName].componentName}</td>
  <td>${employeeRow.entryDetails.[compName].monthlyValues.April}</td>
  <td>${employeeRow.entryDetails.[compName].monthlyValues.May}</td>
</tr>
</c:forEach>
//some other code placed here
</c:forEach>