try和catch块的输出应该打印在2个不同的jsp页面中

时间:2014-05-14 23:49:02

标签: jsp

我正在尝试将java文件的输出打印到jsp文件。

for(String x : list)
{
    try {
        output 1
    }
    catch {
        output 2
    }
}

output 1应该转到x.jsp文件 output 2应转到y.jsp文件

我在哪里提供response.Redirect(x.jsp)response.Redirect(y.jsp)

如果我在每个块中给出每个语句/尝试并捕获),它将抛出错误:

  提交后

无法重定向

非常感谢任何帮助。如果你不正确理解我的问题,请告诉我。

2 个答案:

答案 0 :(得分:1)

我能够做到。 选择单选按钮

if(radio value==(value of 1st radio button))
{
for(String x : list)
{
   try {
    output 1
      RequestDispatcher dispatcher =request.getRequestDispatcher("1st.jsp");
      dispatcher.forward(request, response);
      return;
}
catch {
    output 2
      RequestDispatcher dispatcher =request.getRequestDispatcher("2nd.jsp");
      dispatcher.forward(request, response);
      return;
  }
  }
  }
 else{

 for(String x : list)
  {
  try {
    output 1
      RequestDispatcher dispatcher =request.getRequestDispatcher("1st.jsp");
      dispatcher.forward(request, response);
      return;
}
catch {
    output 2
      RequestDispatcher dispatcher =request.getRequestDispatcher("2nd.jsp");
      dispatcher.forward(request, response);
      return;
}
 }
}

基于此,它将转到其中一个jsp页面,具体取决于单选按钮的选择。

我希望这也将有助于未来的人们。

感谢所有人帮助我。

答案 1 :(得分:0)

response.sendRedirect()方法每次都会创建一个新请求,为什么不使用RequestDispatcher并为其添加一个return语句。

请参阅此RequestDispatcher.forward() vs HttpServletResponse.sendRedirect()

因此您可以将代码重写为,

for(String x : list)
{
    try {
        output 1
          RequestDispatcher dispatcher =request.getRequestDispatcher("1st.jsp");
          dispatcher.forward(request, response);
          return;
    }
    catch {
        output 2
          RequestDispatcher dispatcher =request.getRequestDispatcher("2nd.jsp");
          dispatcher.forward(request, response);
          return;
    }
}

希望这有帮助!