@Controller注解类型
org.springframework.stereotype.Controller注解类型用于指示该类的实例是一个控制器。
@Controller
public class testController {
//some methods
}
Spring使用扫描机制来找到应用程序中所有基于注解的控制器类。为了保证Spring能找到自定义的控制器,需要做两件事:
①在Spring MVC的配置文件中声明spring-context
<beans
... ...
xmlns:context="http://www.springframework.org/schema/context"
... ...
>
②添加component-scan元素 (base-package的值为controller所在的包)
<pre name="code" class="html"><context:component-scan base-package="com.test"/>
@RequestMapping注解类型
org.springframework.web.bind.annotation.RequestMapping注解类型用于映射URI与方法
@RequestMapping可以注释一个方法或者类
<pre name="code" class="java">@Controller
@RequestMapping(value="classMapping")
public class TestController {
@RequestMapping(value="methodMapping")
public String input() {
//Do something
return "input";
}
}
这样,使用http://domain/context/classMapping/methodMapping就能访问TestController的input方法。
要注意的是,类上面的@RequestMapping可以去掉,这样,使用http://domain/context/methodMapping就能访问TestController的input方法。
@RequestMapping除了具有value属性之外,还有method属性,其指定了@RequestMapping注解的类或者方法仅处理哪些HTTP方法。
@Controller
@RequestMapping(value="classMapping")
public class TestController {
@RequestMapping(value="methodMapping", method={RequestMethod.POST, RequestMethod.PUT})
public String input() {
//Do something
return "input";
}
}
这样,仅当HTTP POST或者PUT请求时才会访问到input方法。如果method属性只有一个HTTP方法值,则无需花括号
@RequestMapping(value="methodMapping", method=RequestMethod.POST)