Servlet不转发属性到JSP(JSP接收null)

时间:2018-03-08 00:52:51

标签: java jsp tomcat servlets getattribute

的Servlet

    ArrayList<String[]> itemsInCart = new ArrayList<String[]>();
    String[] test = {"bah","3.50","false"};
    itemsInCart.add(test);

    ArrayList<Integer> testALEmpty = new ArrayList<>();
    ArrayList<Integer> testALItems = new ArrayList<>();
    testALItems.add(1);
    testALItems.add(2);
    testALItems.add(3);


    String testStr = "This is a test string";

    request.setAttribute("testALEmpty", testALEmpty);
    request.setAttribute("testALItems", testALItems);

    request.setAttribute("testStr", testStr);

    request.setAttribute("cartAttribute", itemsInCart);


    try {
        getServletContext().getRequestDispatcher("/Cart.jsp").forward(request, response);
    } catch (Exception e) {
        e.printStackTrace();
    }

JSP

if (request.getAttribute("cartAttribute") == null) {
%>
<b>No Cart</b>
<%
}

当servlet转发到JSP时,我有 No Cart ,因为由于某种原因,servlet没有将属性传递给JSP。

1 个答案:

答案 0 :(得分:0)

将请求属性设置为会话属性:

request.getSession().setAttribute("parameter", "test");

有两种方法可以实现这一目标。

使用JSP表达式,您将使用&lt;%=%&gt; as(注意没有;最后)

<%= parameter %>

第二种也是首选方法是使用JSP EL语法并使用$ {}作为

直接引用请求属性
${parameter}

第一个选项要求您先将属性拉出其范围。第二个没有。

String parameter = (String) request.getAttribute("parameter");