jsp中el表达式调用java的参数

今天在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>
<%
     }   
%>

 

posted @ 2020-06-23 00:43  Maolic  阅读(1014)  评论(0编辑  收藏  举报