无法使用JSP表达式语言显示ArrayList值

时间:2013-03-11 05:41:01

标签: jsp el

我无法使用表达式语言显示ArrayList的值。以下是我正在使用的代码片段 在Servlet中,我使用代码并将ArrayList放在会话

        List list=new ArrayList();
        list.add("10/3/2013");
        list.add("sample.txt");
        list.add("error at line 45");
        HttpSession session=request.getSession();
        session.setAttribute("list",list);
        response.sendRedirect("diaplayDetails.jsp");
displayDetails.jsp中的

包含以下代码

         Error File Details Are :
         ${list[0]}
         ${list[1]} 
         ${list[2]} 

但我没有获得数组列表值。

请帮我解决这个问题。

由于

拉​​吉

3 个答案:

答案 0 :(得分:0)

将JSP中的list对象转换为“List”类 这背后的原因,在Session对象中我们存储Object我们需要downcast来访问特定对象

答案 1 :(得分:0)

如果你使用JSTL试试这个:

<c:forEach items="${list}" var="elem">
    <c:out value="${elem}" />
</c:forEach>

答案 2 :(得分:0)

你只是忘了在EL中提供范围。正确的语法应如下所示:

Error File Details Are:
${sessionScope.list[0]}
${sessionScope.list[1]}
${sessionScope.list[2]}

sessionScope是EL隐式对象之一。所有这些范围隐式对象都用于查找JSP需要搜索您的属性键的范围。在你的情况下,它是&#34; list&#34;。所以:sessionScope - 在您的范围内设置您的属性list - 您的属性的关键名称[0] - 索引值属性中的索引。

请记住,仅使用范围来获取属性。对于参数,您应该使用pageContextparam隐式对象。

More about Expression Language and implicit objects.