2011-06-13 58 views
0

我想在使用EL的JSP中使用具有參數的方法。但EL不支持方法中的參數。其實我想展示一個表格,它有一個在一個單元格中輸出值列表的字段。對於每個單元格,這個列表將有所不同,這取決於參數。我如何使用EL來做到這一點?EL方法中的參數

我已經試過了,但說,它不能在 <c:set var="group" value="${entrant.idGroup}" />其中entrant.idGroup返回int值投整數轉字符串

<c:forEach var="entrant" items="${bean.entrants}"> 
       <tr> 
      <td>${entrant.idEntrant}</td> 
        <c:set var="group" value="${entrant.idGroup}" /> 
        <td><%=bean.getGroupCode(Integer.parseInt((String)pageContext.getAttribute("group")))%></td> 
      <td>${entrant.name}</td> 
    </c:forEach> 

但即使它的作品,我想用純EL在JSP。我怎樣才能做到這一點?

+0

請不要混淆JSTL和EL。在你的問題中,你一直在談論EL,就好像它是JSTL一樣。我已經掃過了那一個。請閱讀我們的wiki頁面以瞭解其差異:http://stackoverflow.com/tags/jstl/info和http://stackoverflow.com/tags/el/info – BalusC 2011-06-13 22:38:04

回答

6

在EL 2.2中引入了對傳遞方法參數和調用非getter方法的支持,它是Servlet 3.0的一部分。所以最好的辦法是升級到一個Servlet 3.0兼容的容器,如Tomcat 7,Glassfish的3時,JBoss AS 6,並確保您的web.xml聲明符合的Servlet 3.0規範,這樣就可以做到以下幾點:

<c:forEach var="entrant" items="${bean.entrants}"> 
    <tr> 
     <td>${entrant.idEntrant}</td> 
     <td>${bean.getGroupCode(entrant.idGroup)}</td> 
     <td>${entrant.name}</td> 
    </tr> 
</c:forEach> 

如果你的容器不支持它,那麼你最好的辦法是創建一個自定義的EL函數。

 <td>${some:getGroupCode(bean, entrant.idGroup)}</td> 
+0

Thiks,這也與jetty 8一起工作。 – msangel 2013-08-28 06:35:27