4

我有 jsp,具体取决于我正在转发到另一个页面的某些条件。

我有 /myjsp/first.jsp ,其代码为,

<%
if(some condtion){
   somelogic                
}
else
{
       application.getRequestDispatcher("/myjsp/another.jsp").forward(request,response);
}
%>
<div>
    <jsp:include page='header.jsp' />
</div>       

在这段代码中,如果流程来了,否则条件控制将转到另一个.jsp。

但它也显示在 /myjsp/first.jsp 的 div 标签下方。

我想在 another.jsp 到达那里后继续控制它,它不应该显示当前页面中的任何内容,即来自 /myjsp/first.jsp 的 div 标记

4

4 回答 4

1

利用:

<jsp:forward page="pageName.jsp"></jsp:forward>

而不是 application.getRequestDispatcher("/myjsp/another.jsp").forward(request,response);

或者

response.sendRedirect("pagenName.jsp");

于 2013-04-09T04:50:43.860 回答
1

div里面的if

或者更好的是,不要使用 scriptlet,也不要从 JSP 转发。JSP 应该用作视图组件,并且只生成标记。工作流应该从您首选的 MVC 框架的 servlet 或操作内部完成。

于 2012-11-20T22:09:16.220 回答
0

我同意,您不应该在 jsp 中使用 'forward'(或 sendRedirect),因为使用 scriptlet 在响应缓冲区中有 HTML 代码,可以通过使用 <%@ page autoFlush 增加缓冲区大小来修复(或隐藏)问题="true" 缓冲区="2000kb"%>; 我所做的是使用 JavaBeans。

于 2014-08-28T23:13:31.927 回答
0

利用

    response.sendRedirect();

反而

     forward();

我认为它会解决你的问题。

于 2012-11-21T07:15:21.937 回答