【问题标题】:pass string from servlet to jsp [duplicate]将字符串从servlet传递给jsp [重复]
【发布时间】:2013-11-14 23:12:48
【问题描述】:

我曾尝试将字符串从 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);%>

【问题讨论】:

    标签: java jsp servlets


    【解决方案1】:

    我对那个话题有点生疏,但我想我是这样使用转发的:

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

    所以从 ServletContext 而不是从请求中获取 RequestDispatcher,但我不确定这两个调用的幕后是否有任何区别。

    编辑:您在哪里设置该属性? (是否在 doGet/doPost 两种方法之一中?

    【讨论】:

    • 我试过了,但还是有同样的问题在.. line 2 RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
    • 你试过字节码的答案了吗? (如果在接下来的几个小时内没有帮助,我将删除我的答案)
    • 我试过了。但仍然面临同样的问题
    • 您可以尝试将以下非常简单的示例添加到您的项目中,看看它是否有效? java-tips.org/java-ee-tips/javaserver-pages/…
    • 我在 doGet 中设置了属性
    【解决方案2】:

    使用out.println()。 out 在 jsp 中是 implicit object。

    你的代码应该是。

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

    【讨论】:

    • 感谢您的评论。我的问题出在 servlet 页面中。它不会转发到 jsp 页面
    【解决方案3】:

    您是否将 jsp 文件放在 WEB-INF 文件夹中或其中的某个位置?如果是这样,那么您应该将其更改为 request.getRequestDispatcher("/WEB-INF/GetCategory.jsp").forward(request, response);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-16
      • 2015-01-18
      • 2014-03-10
      • 1970-01-01
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      相关资源
      最近更新 更多