jsp如何根据jsp页面调用的servlet完成的处理显示其他数据

时间:2015-03-19 16:24:44

标签: java jsp servlets

用户在jsp页面中输入搜索

/app/index.jsp

点击该页面的提交按钮会将处理发送到servlet并在点击/ app / search时更改网址?id = 1234

servlet处理一个请求,如果只有一个搜索结果,那么它会重定向到该结果的页面,这样就可以了。

但是如果没有结果我想重定向回到/app/index.jsp但我希望它显示一个错误(由servlet生成)。什么是最简单的方法呢?

尝试解决方案

所以在我的Servlet中我有:

        else
        {
            System.out.println("You didnt enter anything to search for");
            request.setAttribute("error", "You didnt enter anything to search for");
            request.getRequestDispatcher("/index.jsp").forward(request, response);
            return;
        }

(注意调试,所以我可以在我的tomcat日志中确认这个代码实际上正在运行,它是什么)

然后我的index.jsp说

<h3><%request.getAttribute("error");%></h3>

但是当页面显示时它只有

<h3></h3>

它从来没有任何东西

解决方案 我错过了一个等号,改为

<%=request.getAttribute("error")%>

修好了。

1 个答案:

答案 0 :(得分:2)

您应该使用错误消息设置请求,例如;

request.setAttribute("errorMsg", "Error:No users find");
RequestDispatcher rd = null;
rd = request.getRequestDispatcher("index.jsp");
rd.forward(request, response);

有关详细信息,您可以查看我的答案,其中有scenario