我有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标签
答案 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。