@Controller
标注一个控制器组件类。 和@Service(业务逻辑bean) @Repository(DAO组件bean) @Component(普通bean)用法一样
导入context Schema,并开启spring扫描
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--开启扫描controller类-->
<context:component-scan base-package="此处写要扫描的路径" />
</beans>
@RequestMapping
用来处理请求地址映射的注解,可以写在类和方法上,页面访问时如果类上有写
通过 类映射路径/方法映射路径访问
可用参数
String name() default "";
@AliasFor("path")
String[] value() default {};
@AliasFor("value")
String[] path() default {};
RequestMethod[] method() default {};
String[] params() default {};
String[] headers() default {};
String[] consumes() default {};
String[] produces() default {};
method
指定请求的method类型,底层是一个枚举类数组
public enum RequestMethod {
GET,
HEAD,
POST,
PUT,
PATCH,
DELETE,
OPTIONS,
TRACE;
private RequestMethod() {
}
}
通过 method = {RequestMethod.POST}指定 只能接受指定的方法请求
value path
指定请求的实际地址,通过源码发现 两者效果一样
@RequestParam
@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestParam {
@AliasFor("name")
String value() default "";
@AliasFor("value")
String name() default "";
boolean required() default true;
String defaultValue() default "\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n";
}
从源码中看出
作用于形参列表
required参数表示是否必须
name和value效果一样 用于指定参数名