今天在jsp頁面中使用了EL表達式,同時EL表達式在for迴圈中,但是EL表達式無法與java代碼同時使用,所以記錄一下如何把java中的變數傳遞過去。 示例: <% for(int i=0;i<list.size();i++){ %> <tr> <td>${list[i].key1}</td> < ...
今天在jsp頁面中使用了EL表達式,同時EL表達式在for迴圈中,但是EL表達式無法與java代碼同時使用,所以記錄一下如何把java中的變數傳遞過去。
示例:
<% for(int i=0;i<list.size();i++){ %> <tr> <td>${list[i].key1}</td> <td>${list[i].key2}</td> <td>${list[i].key3}</td> </tr> <% } %>
由於需要把list中的迴圈遍歷輸出,如上寫法在el表達式中雖然語法沒有發生錯誤,但是實際輸出均為空。解決方法就是,在for迴圈中,把每一個 i 通過 pageContext.setAttribute() 方法,傳遞到頁面中去。僅需添加一行即可,修改之後的代碼如下:
<% for(int i=0;i<list.size();i++){ pageContext.setAttribute("i",i); //通過pageContext.setAttribute()方法將 i 傳入視圖中,即可被el表達式使用 %> <tr> <td>${list[i].key1}</td> <td>${list[i].key2}</td> <td>${list[i].key3}</td> </tr> <% } %>