【问题标题】:Servlet not Redirected to Page, Showing Non Styled PageServlet 未重定向到页面,显示非样式页面
【发布时间】:2013-12-27 18:08:53
【问题描述】:

我在 jsp 中使用 servlet 时遇到问题。假设我想从下拉列表中获取值并将其处理到 servlet。

处理下拉列表中代码的方法称为ListDetailPesanan(Pesanan p);

我已成功从返回数组列表的函数 ListDetailPesanan 中获取列表。然后将该函数放置在我的名为 submitAppPesanan 的 servlet 中,该 servlet 从一个表单执行,然后重定向到名为 apesanan.jsp

的页面

这是 servlet submitAppPesanan.java(我已将此 servlet 放置到 web.xml)

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    try {
        /* GETTING VALUE FROM FORM. */
        int kode = Integer.parseInt(request.getParameter("kode_pesanan_tmp"));
        /* Initialize value to object */
        Pesanan p = new Pesanan(kode);
        /* execute the object to gain result set */
        MasterPesanan mp = new MasterPesanan();
        List<Pesanan> psn = mp.ListDetailPesanan(p);
        java.lang.System.out.println("Pesanan " + psn);
        /* sending result set to apesanan.jsp again */
        if(psn != null){
            request.setAttribute("listpesanan", psn);
            request.getRequestDispatcher("system/apesanan.jsp").forward(request, response);
        }     
    } catch(Exception e) {
        java.lang.System.out.println("Exception on Submit App Pesanan " + e.getMessage() + "\n" + e.getCause()); 
    } finally {            
        java.lang.System.out.println("Submit Kode Pesanan Successfully Executed");
    }
}

但是servlet不会再次重定向到apesanan.jsp,而是servlet停留在页面中并显示apesanan.jsp的非样式页面。

  1. 这段代码有什么问题?因为我看到了我的输出结果 Glassfish Server 没有任何错误。
  2. 如何正确使用从 servlet 到 apesanan.jsp 页面的列表?

提前致谢。

更新

我的 apesanan.jsp 页面的屏幕截图然后执行了 servlet。

然后重定向然后堆在这里。

更新

结果列表工作正常并按我的意愿显示,但仍然不知道发生了什么。

【问题讨论】:

  • 为什么对这个问题投反对票?
  • 好问题,你有什么例外吗?
  • @Masud,没有。没有打印任何异常。我已经跟踪了 jsp 页面、servlet 和函数以获取结果列表。结果列表被捕获(Pesanan [objects.Pesanan@1d6c08f, objects.Pesanan@1fc153c, objects.Pesanan@d6247e])
  • 你确定不是转发到jsp页面。我问这个是因为,它与您转发到的 jsp 相同。您是否尝试过访问 jsp 页面中的列表?
  • @ABP 是的,它执行了 servlet,但只堆叠在 servlet 页面上。请参阅我的更新部分。谢谢

标签: java jsp servlets arraylist


【解决方案1】:

问题是您的 css 未加载,因为我猜您使用的是相对路径,例如 &lt;link rel="stylesheet" type="text/css" href="../css/theme.css"&gt; 在你的 jsp 中。

当您将请求转发到 jsp 页面时,页面 URL 不会更改,因此相对路径不会解析为 css 文件。

使用&lt;link rel="stylesheet" type="text/css" href="&lt;%=request.getcontextpath()%&gt;/css/theme.css"&gt; 或JSTL 的c:url 标签。

【讨论】:

  • 是的,该样式现在可以使用,但页面仍然没有重定向,但仍然停留在 servlet 页面。无论如何,你知道如何在 JSTL 中创建可点击的 url 吗?
  • JSTL 没有任何链接标签,但您可以使用 jstl 在锚标签中创建 href 属性,例如 &lt;a href="&lt;c:url value="/jsp/index.htm"/&gt;"&gt;TEST&lt;/a&gt;。参考tutorialspoint.com/jsp/jsp_standard_tag_library.htm
【解决方案2】:

请在 RequestDispatcher 中检查您的路径。

尝试类似 ("/system/apesanan.jsp");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 2013-05-27
    • 2021-05-06
    • 2012-03-14
    • 1970-01-01
    相关资源
    最近更新 更多