我正在使用Spring 3.0.5。我的注释控制器都没有被识别。我的应用程序有XML ...
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<mvc:resources mapping="/static/**" location="/static/"/>
<mvc:annotation-driven/>
<context:component-scan base-package="com.myco.systems.leadsmonitor"/>
我的静态资产得到了很好的回报。但是当我尝试到达带注释的控制器时,我得到了404 ...
package com.myco.systems.leadsmonitor.web.controller;
@Controller
public class HomeController {
…
@RequestMapping("/")
public void index(Model model) {
model.addAttribute("latestLeadTime", MonitorStatistics.getInstance().getLatestLeadCreationTime());
model.addAttribute("lastDBCheck", MonitorStatistics.getInstance().getLastDBCheck());
}
我需要做些什么才能让我的控制器被Spring接收?谢谢, - 戴夫
答案 0 :(得分:0)
我认为您获得404的原因是因为视图未在控制器方法中得到解决。默认情况下,void返回类型使用基于URI的视图名称映射,在您的情况下,因为路径是“/”,它可能会被解析为“”,而不会映射到任何逻辑视图。
你能尝试几件事吗?
答案 1 :(得分:0)
您应该检查web.xml中的两个URL映射,并在spring配置中查看解析配置。
一个很好的资源是Spring By Example.org
请参阅:http://www.springbyexample.org/examples/simple-spring-mvc-form-annotation-config-webapp.html
另一个是SpringSource ToolSuite(STS)中提供的教程,他们将指导您创建Spring MVC Web应用程序。这些教程通常包括来自tuckey.org的UrlRewriteFilter
e.g。 servlet映射到/ app,然后添加此servlet过滤器
<!-- Enables clean URLs with JSP views e.g. /welcome instead of /app/welcome -->
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<!-- <init-param>-->
<!-- <param-name>logLevel</param-name>-->
<!-- <param-value>DEBUG</param-value>-->
<!-- </init-param>-->
</filter>