【问题标题】:404 Not Found error when posting to JSP file in a maven web project在 Maven Web 项目中发布到 JSP 文件时出现 404 Not Found 错误
【发布时间】:2018-08-08 00:54:24
【问题描述】:

我是 Java 新手。我正在开发一个 Maven Web 应用程序,似乎无法将数据从我的索引文件发布到另一个 JSP 文件。当我在 Java Web 应用程序中模仿它时,它似乎工作正常。我正在使用 NetBeans。

这是我的文件的排列方式:

File Arrangement Snip

这是 index.jsp 中的 jQuery 代码:

$("#edit-save-btn").on('click', function () {
        $.post('/editSupplier', $("#supplier-info-edit").serialize(), function (res) {
            console.log(res);
            var $id = $("#editSupplierId").val();
            $row = $("demo-id [data-id=" + $id + "]");
            $row.find('input[data-title=name]').html($("#name").val());
            $row.find('input[data-title=contact]').html($("#contact").val());
            $row.find('input[data-title=email]').html($("#email").val());
            $row.find('input[data-title=status]').html($("#status").val());
            $("#edit").modal('hide');
        });
    });

这是我在editSupplier.jsp(目的地)中写的:

if (request.getMethod().equalsIgnoreCase("post")) {
    SupplierDAO SupplierDAO = new SupplierDAOImpl();
    Supplier supplier = new Supplier();
    supplier.setName(request.getParameter("sname"));
    supplier.setContact(request.getParameter("scontact"));
    supplier.setEmail(request.getParameter("semail"));
    supplier.setStatus(request.getParameter("sstatus") != null);
    String id = request.getParameter("sid");
    supplier.setId(Integer.parseInt(id));
    SupplierDAO.update(supplier);
    response.sendRedirect("/index");
}

在我的 web.xml 文件中:

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

每当我单击模式中的“更新”按钮时,它应该将输入表单数据发布到 editSupplier.jsp,然后将我重定向到 index.jsp,但我得到了这个: Error Snip

请帮忙,我一直在拔头发。

编辑:我的 dispatcher-servlet.xml 文件中有这个:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/views/" p:suffix=".jsp"/>

【问题讨论】:

  • 尝试不使用 '../' 所以你的 ;ink 应该是 editSupplier.jsp only

标签: java jquery maven jsp servlets


【解决方案1】:

我猜你的dispatcher-servlet.xml 中有这样的东西:

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>

不要忘记您的 jsp 也是 servlet 并且需要映射到 by resolve。本例中只映射了/WEB-INF/views下的jsp,server文件夹不公开。

我建议您将server 文件夹移动到views 文件夹下,然后将../server/editSupplier.jsp 替换为server/editSupplier.jsp 相对网址。

【讨论】:

  • 哇,你是个巫师。是的,我的 dispatcher-servlet.xml 中确实有类似的东西: 我将“editSupplier.jsp”移动到“views”文件夹(与 index.jsp 相同的文件夹),并将 URL 相应地更改为它们各自的目的地。但是我仍然收到相同的 404 错误,说他们找不到 editSupplier.jsp 文件夹。我没有对 dispatcher-servlet.xml 文件进行更改。你有什么建议吗?
  • 哦,没关系,我似乎在替换 URL 时错过了一个地方,现在它工作正常。非常感谢你!
猜你喜欢
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
  • 2018-12-24
  • 2017-09-03
  • 1970-01-01
  • 2017-11-25
  • 2016-10-05
  • 2015-08-11
相关资源
最近更新 更多