Java jsp如何基于jsp页面调用的servlet所做的处理显示附加数据
用户在jsp页面中输入搜索 /app/index.jsp 然后单击提交按钮,该页面将处理发送到servlet,并在单击/app/search?id=1234时更改url servlet处理一个请求,如果只有一个搜索结果,那么它会重定向到该结果的页面,这很好 但是如果没有结果,我想重定向回/app/index.jsp,但我希望它显示一个错误(由servlet生成)。最简单的方法是什么 尝试的解决方案 因此,在我的Servlet中,我有:Java jsp如何基于jsp页面调用的servlet所做的处理显示附加数据,java,jsp,servlets,Java,Jsp,Servlets,用户在jsp页面中输入搜索 /app/index.jsp 然后单击提交按钮,该页面将处理发送到servlet,并在单击/app/search?id=1234时更改url servlet处理一个请求,如果只有一个搜索结果,那么它会重定向到该结果的页面,这很好 但是如果没有结果,我想重定向回/app/index.jsp,但我希望它显示一个错误(由servlet生成)。最简单的方法是什么 尝试的解决方案 因此,在我的Servlet中,我有: else {
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")%>
已修复。您应该使用以下错误消息设置请求:
request.setAttribute("errorMsg", "Error:No users find");
RequestDispatcher rd = null;
rd = request.getRequestDispatcher("index.jsp");
rd.forward(request, response);
有关更多详细信息,您可以查看我的答案,其中有类似的内容将消息放入请求并转发到搜索页面?@Dave Newton请展开我不知道如何展开更多内容;设置消息的请求属性,转发(而不是重定向,消息将丢失)到搜索页面,在搜索页面上,如果有消息出现,则显示它。谢谢,所以我做了这个请求。setAttribute(“错误”,“错误消息”);request.getRequestDispatcher(“/index.jsp”).forward(请求,响应);返回;在我的jsp中,只有一条消息从未显示出来?@PaulTaylor请将您的问题代码作为编辑分享;所以我可以很好地检查。我想它在jsp中缺少一个“=”