gpt4 book ai didi

java - Servlet 没有将属性转发给 JSP(JSP 接收到空值)

转载 作者:行者123 更新时间:2023-11-28 23:58:42 25 4
gpt4 key购买 nike

小服务程序

    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 时,我没有购物车,因为出于某种原因 servlet 没有将属性传递给 JSP。

最佳答案

将请求属性设置为 session 属性:

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

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

使用 JSP 表达式,您将使用 <%= %> 作为(注意末尾没有 ;)

<%= parameter %>

第二种也是首选的方法是使用 JSP EL 语法并使用 ${ } as 直接引用请求属性

${parameter}

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

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

关于java - Servlet 没有将属性转发给 JSP(JSP 接收到空值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49163692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com