@Controller
@Controller用于标记一个类,使用它标记的类就是一个SpringMVC Controller对象。Spring使用扫描机制查找应用程序中所有基于注解的控制器类。配置文件如下:
<context:component-scan base-package="org.fkit.controller"/>
<context:component-scan/>元素的功能是:启动包扫描功能,以便注册带有@Controller,@Service,@Repository,@Component等注解的类成为Spring的Bean,base-package属性指定了需要扫描的类包,类包及其递归子包中所有的类都会被处理。
@RequestMapping
@RequestMapping指示Spring用哪一个类或方法来处理请求动作,该注解可用于类或方法。同时可以指定如下属性:
- value,将URL映射到方法上进行处理
- method,指示该方法仅仅处理哪些HTTP请求方式(若没有指定,则可以处理任意HTTP请求方式)
- consumes,处理请求的提交内容类型(Content-Type: "application/json"或"text/html")
- produces, 指定返回的内容类型,仅处理request请求头(Accept)中所包含的类型
- params,指定request中必须包含某些参数值时,才让该方法处理
- headers,request中必须包含某些指定的header值
参数绑定
@RequsetParam
@RequsetParam用于将指定的请求参数赋值给方法中的形参
- name,指定请求头绑定的名称
- value,name属性的别名
- required,指示参数是否必须绑定
- defauleValue,如果没有传递参数而使用的默认值
@PathVariable
可以非常方便获得请求URL中的动态参数
@RequestHeader
将请求的头信息区域数据映射到功能处理方法的参数上
- name,指定请求头绑定的名称
- value,name属性的别名
- required,指示参数是否必须绑定
- defauleValue,如果没有传递参数而使用的默认值
@CookieValue
用于将请求的Cookie数据映射到功能处理方法的参数上
- name,指定请求头绑定的名称
- value,name属性的别名
- required,指示参数是否必须绑定
- defauleValue,如果没有传递参数而使用的默认值
@SessionAttributes
允许我们有选择地指定Model中的哪些属性需要转存到HttpSession对象当中。只能声明在类上,不能声明的方法上。
- name,Model中属性的名称,即存储在HttpSession当中的属性名称
- value,name属性的别名
- types,指示参数是否必须绑定
@ModelAttribute
将请求参数绑定到Model对象,只支持一个属性vlaue,String类型,表示绑定的属性名称。被@ModelAttribute注释的方法会在Controller每个方法执行前被执行。
信息转换
HttpMessageConverter<T>接口
负责将请求信息转换为一个对象(类型为T),并将都系昂绑定到请求方法的参数中或输出为响应信息。
转换JSON数据
@ResponseBody会将集合数据转换为json格式数据并将其返回客户端。
处理json格式的开源类包使用Jackson和fastjson,只是需要使用不同的HttpMessageConerter。
转换XML数据
JAXB提供将XML实例文档反向生成JAVA对象的方法,并能够JAVA对象的内容重新写入XML实例文档。提供的注解@XmlRootElement,@XmlElement等。
网友评论