Servlet 未将属性转发到 JSP(JSP 接收到空值)
Servlet not forwarding attributes to JSP (JSP receives null)
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。
将请求属性设置为会话属性:
request.getSession().setAttribute("parameter", "test");
或
您可以通过两种方式完成此操作。
使用 JSP 表达式,您将使用 <%= %> 作为(注意末尾没有 ;)
<%= parameter %>
第二种也是首选的方法是使用 JSP EL 语法并使用 ${ } as
直接引用请求属性
${parameter}
第一个选项要求您先将属性拉出其范围。第二个没有。
String parameter = (String) request.getAttribute("parameter");
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。
将请求属性设置为会话属性:
request.getSession().setAttribute("parameter", "test");
或
您可以通过两种方式完成此操作。
使用 JSP 表达式,您将使用 <%= %> 作为(注意末尾没有 ;)
<%= parameter %>
第二种也是首选的方法是使用 JSP EL 语法并使用 ${ } as
直接引用请求属性${parameter}
第一个选项要求您先将属性拉出其范围。第二个没有。
String parameter = (String) request.getAttribute("parameter");