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>
在我的代码中,我有这样的场景,我必须引用要放置在另一个 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>