你能告诉我,我的请求映射有什么问题吗?

时间:2012-01-13 07:31:53

标签: java spring jsp spring-mvc maven-2

我正在尝试为家庭控制器进行请求映射。我的家庭控制器有一个方法:

@RequestMapping(value = "/create", method = RequestMethod.GET)
public ModelAndView Create(Locale locale, Model model)
{
    return new ModelAndView("create");
}

我的视图解析器按以下方式配置:

<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the   /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/views/" />
    <beans:property name="suffix" value=".jsp" />
</beans:bean>

文件夹中有一个视图: views / create.jsp

家庭控制器中的超链接使用以下代码构建:

<p><a href = "/create">New topic</a></p>

但是,当我点击超链接时,我收到错误#404。

1 个答案:

答案 0 :(得分:3)

如果您的服务器位于文件夹http://localhost/AppName/下,并且您使用

重定向到索引
<p><a href = "/create">New topic</a></p>

您将转到http://localhost/create而不是http://localhost/AppName/create

第二

我有同样的问题,就像你在这里描述的那样,只要我用扩展名映射视图就解决了。

所以在我的情况下:

@RequestMapping(value = "/create.html", method = RequestMethod.GET)
public ModelAndView Create(Locale locale, Model model)
{
    return new ModelAndView("create");
}

并且您的调度程序服务器应为:

 <servlet>
    <servlet-name>SomeServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>SomeServlet</servlet-name>
    <url-pattern>*.html</url-pattern>
  </servlet-mapping>

也许只会试试看它会有所帮助。我无法解释它为什么会发生,但它只是解决了我的问题。