jsp前锋没有按预期工作

时间:2012-11-20 18:21:30

标签: jsp forward

我有jsp取决于我正在向另一页转发的某些条件。

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

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

在此代码中,如果流程传递给else,则条件控制将转到another.jsp。

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

我想继续控制另一个.jsp一旦它到那里它不应该从当前页面显示任何东西,即来自/myjsp/first.jsp的div标签

4 个答案:

答案 0 :(得分:1)

div放在if内。

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

答案 1 :(得分:1)

使用:

<jsp:forward page="pageName.jsp"></jsp:forward>
而不是 application.getRequestDispatcher( “/ myjsp / another.jsp”)向前(请求,响应);

response.sendRedirect是( “pagenName.jsp”);

答案 2 :(得分:0)

使用

    response.sendRedirect();

而不是

     forward();

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

答案 3 :(得分:0)

我同意,你不应该使用&#39; forward&#39; (或sendRedirect)在jsp中,因为对于scriptlet,响应缓冲区中有HTML代码,可以通过使用&lt;%@ page autoFlush =&#34;增加缓冲区大小来修复(或隐藏)问题。真&#34;缓冲液=&#34; 2000KB&#34;%取代;我所做的就是使用JavaBeans。