在spring-mvc Web应用程序中出错/导航无效

时间:2015-08-20 10:53:48

标签: java spring jsp spring-mvc

我正在尝试一个简单的Web应用程序来实现CRUD操作。当我在tomcat-7上运行我的应用程序然后我得到我的主页。当我点击“添加Spcr”链接时,它会显示addSpcr.jsp表单页面。填写表单后,当我点击保存然后它给我以下错误:

HTTP Status 404 - /insert
description:requested resource is not available

addSpcr.jsp页面:

 <form method="POST" action="/insert" >
 //form body
 </form>

当我点击保存按钮时,理想情况下应该导航到

https://localhost:8080/SampleLeaderTool/insert

但它导航到网址

https://localhost:8080/insert

来自控制器的方法是:

@RequestMapping(value = "/insert",method = RequestMethod.POST) 
public ModelAndView insertData(@ModelAttribute Spcr spcr){
    if (spcr != null)  
           a.insertData(spcr); 

    ModelAndView model = new ModelAndView("success");
    return model;
}

从spring-servlet.xml查看解析器:

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

我无法弄清楚我在这里做错了什么。

3 个答案:

答案 0 :(得分:1)

这是因为您在表单操作中缺少上下文路径。

要避免此类问题,请在${pageContext.servletContext.contextPath}之前添加/insert

例如:

 <form method="POST" action="${pageContext.servletContext.contextPath}/insert" >
 //form body
 </form>

答案 1 :(得分:0)

你可以写这段代码。这是工作。

<form method="POST" action="${pageContext.request.contextPath}/insert" >
 //form body
 </form>

答案 2 :(得分:0)

您必须在插入之前添加${pageContext.servletContext.contextPath},因为它错过了操作上下文的路径