从Servlet传递字符串到JSP

3

我曾尝试从servlet将字符串传递到jsp页面,但是它从未被转发到jsp页面。以下是文件:

servlet文件:

String login = "asd";
request.setAttribute("myname",login);
request.getRequestDispatcher("GetCategory.jsp").forward(request, response); 

jsp文件:

<% String name = (String)request.getAttribute("myname");
System.out.println(name);%>
3个回答

3

虽然我对这个话题有点生疏,但我认为我是这样使用转发的:

String nextJSP = "/searchResults.jsp";
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
dispatcher.forward(request,response);

与从请求中获取RequestDispatcher不同,从ServletContext获取RequestDispatcher,但我不确定这两个调用背后是否有任何区别。

编辑:您在哪里设置该属性?(是在doGet/doPost两种方法中的其中一个吗?)


我尝试过了,但仍然面临着相同的问题。 - Pravin
1
你能否尝试将以下非常简单的示例添加到你的项目中并查看它是否有效?http://www.java-tips.org/java-ee-tips/javaserver-pages/how-to-forward-requests-from-servlet-t.html - JBA
好的,那不是问题,请尝试添加上面的简单示例,应该可以工作。不幸的是,我现在没有时间尝试它 :( - JBA
https://dev59.com/_WIj5IYBdhLWcg3w6JDU - Pravin
一旦您可以将String-Object传递给JSP,您也可以将任何其他内容传递给JSP :) 很高兴能帮助您。 - JBA
显示剩余5条评论

0

你是否将JSP文件放在WEB-INF文件夹内或其子目录中?如果是的话,你应该将它更改为 request.getRequestDispatcher("/WEB-INF/GetCategory.jsp").forward(request, response);


0

使用out.println()。在JSP中,out隐式对象

你的代码应该是这样的。

<% 
   String name = (String)request.getAttribute("myname");
   out.println(name);
%>

感谢您的评论。我的问题出在Servlet页面上,它无法转发到JSP页面。 - Pravin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接