0

我无法使用表达式语言显示 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]} 

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

请帮我解决这个问题。

谢谢

拉吉

4

3 回答 3

0

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

于 2013-03-11T06:13:22.820 回答
0

如果你使用 JSTL,试试这个:

<c:forEach items="${list}" var="elem">
    <c:out value="${elem}" />
</c:forEach>
于 2013-03-11T12:21:49.510 回答
0

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

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

sessionScope 是 EL 隐式对象之一。所有这些范围隐式对象都用于在 JSP 需要搜索您的属性键的范围内查找。在您的情况下,它是“列表”。所以:sessionScope- 在你设置你的属性的范围内,list- 你的属性的键名,[0]- 你的属性的值部分内的索引。

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

更多关于表达式语言和隐式对象。

于 2015-05-08T13:59:07.517 回答