我想将一个status参数从servlet传递给jsp。我是通过
发送的response.sendRedirect("newpage.jsp?status=yes");
如果status = yes
然后在<div>
中显示成功消息,然后将状态设置为null
。但是,当newpage.jsp
第一次加载状态的值为null
时,它会提供空指针异常。
会话也会发生同样的事情。
<%
String status = request.getParameter("status");
System.out.println("Check Successful of Status"+status);
if (status.equalsIgnoreCase("yes")) {
System.out.println("Check Successful of Status");
%>
<div style="color: green;" align="center">Selected tenant approved successfully</div>
<script type="text/javascript"> window.location.href = window.location.href.split("?")[0]; </script>
<%
request.setAttribute("status1", null);
%>
答案 0 :(得分:1)
request.setAttribute("status1", yourstatus);
getServletContext().getRequestDispatcher("yourpageyouwanttosend.jsp").forward(request, response);
您的观点<%= request.getAttribute("status1") %>
答案 1 :(得分:1)
在Servlet中,您可以使用
request.setAttribute("status","yes")
在jsp中,您可以使用
进行检索request.getAttribute("status");
是的,我错过了这一点
以上你需要使用
RequestDispatcher rd = request.getRequestDispatcher("somefile.jsp");
rd.forward(request,response);
如果您想使用response.sendRedirect("somefile.jsp")
,
你可以将会话中的变量设置为
HttpSession session = request.getSession(false);
session.setAttribute("status","yes")
并以
取回 session.getAttribute("status")
。
使用后,您可以将其删除为
session.removeAttribute("status")
答案 2 :(得分:0)
您使用status
作为参数名称,并且正在比较JSP中的status1
if (status1.equalsIgnoreCase("yes")) {
注意:
将javacode放在jsp上并不是件好事,切换到JSTL