2016-07-30 63 views
0

在我的代碼中,我有一個場景,我必須將動態名稱(使用JSP表達式)放置在另一個JSP表達式中。總之,我必須用另一種表達來表達。JSP taglib中表達式中的動態表達式

下面在如下表達式表達碼的結果: 「$ {employeeRow.entryDetails $ {COMPNAME}」

包含無效表達(S):javax.el.E​​LException:錯誤解析:$ {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> 

在這個任何人的幫助?

回答

0

我找到了上面的解決方案。我在這裏發佈的解決方案爲他人幫助

表達中的任何動態值應在去方括號「[]」

以下是更正代碼:

<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>