2011-09-27 45 views
5

Tôi đang sử dụng Spring MVC cho bộ điều khiển của mình và JSP là lớp trình bày của tôi.Gấp đôi các biến EL lồng nhau?

Bên trong bộ điều khiển Mùa xuân của tôi, tôi có:

model.put("issues", dataManager.getIssues()); 
model.put("functions", dataManager.getFunctions()); 

Vì vậy, hiện đang nằm trong JSP tôi, tôi có quyền truy cập vào

${requestScope['issues']} 
${requestScope['functions']} 

Đó là tất cả tốt và tốt. Nhưng để mã của tôi có thể mở rộng, tôi muốn lưu trữ tên biến số issuesfunctions bên trong cơ sở dữ liệu, sau đó sẽ có thể truy cập được thông qua thuộc tính trên đối tượng configs đang được lặp lại. Vì vậy, những gì tôi muốn kết thúc với một cái gì đó như sau:

<c:forEach items="${configs}" var="cfg"> 
    <c:if test="${cfg.configType == 'select'}"> 
     <th>${cfg.header}</th> 
     <td><myTagLib:select values="${requestScope['${cfg.selectorName}']}" /></td> 
    </c:if> 
</c:forEach> 

đâu ${cfg.selectorName} sẽ tổ chức một trong hai issues hoặc functions trong ví dụ này.

Trả lời

6

Bạn thân thiết. Bạn chỉ cần xóa số lồng nhau ${} vì cú pháp không hợp lệ.

<myTagLib:select values="${requestScope[cfg.selectorName]}" /> 
+0

..... Và điều đó đã làm điều đó. Hoàn hảo, cảm ơn! – Mike

+0

Bạn được chào đón. – BalusC

+0

@BalusC, tôi đang thực hiện như ** \t \t \t \t \t \t \t **. Nhưng tôi không thể lấy danh sách vật phẩm theo cách này. Hãy giúp tôi. – masT

Các vấn đề liên quan