springmvc梳理2

/**
 * @Contoller和@RequestMapping注解支持类:处理器映射RequestMappingHandlerMapping 和 处理器适配器
 * RequestMappingHandlerAdapter组合来代替Spring2.5开始的处理器映射
 * HttpMessageConverter进行请求内容区数据到@RequestBody注解的命令对象的转换,Spring会根据相应的
 * HttpMessageConverter进行模型数据(返回值)到JSON响应内容的转换
 * @author thinkpad
 *
 */
@Controller
@RequestMapping(value = "/index")
public class TestController {

	/**
	 * @RequestMapping的"consumes" 和 "produces" 条件支持:用于支持@RequestBody 和 @ResponseBody,
	 * 1consumes指定请求的内容是什么类型的内容,即本处理方法消费什么类型的数据,如consumes="application/
	 * json"表示JSON类型的内容,Spring会根据相应的HttpMessageConverter进行请求内容区数据到@RequestBody注解
	 * 的命令对象的转换;
	 * 2produces指定生产什么类型的内容,如produces="application/json"表示JSON类型的内容,Spring的根据相应的
	 * HttpMessageConverter进行模型数据(返回值)到JSON响应内容的转换
	 * 
	 * 
	 * URI模板变量增强:URI模板变量可以直接绑定到
	 * @ModelAttribute指定的命令对象、
	 * @PathVariable方法参数在视图
	 * 渲染之前被合并到模型数据中(除JSON序列化、XML混搭场景下)
	 * 
	 * @PathVariable来获取  @RequestMapping(value = "/page/{id}", method = RequestMethod.GET)  
	 * @RequestParam用来获得静态的URL请求入参
	 * 
	 * 
	 * @param model
	 * @return
	 */
	@RequestMapping(value = "/{id}",produces="application/json")
	public String index(ModelMap model,@PathVariable long id,@RequestParam(value = "page", required = false, defaultValue = "1" )int page){
		return "";
	}
	
	/**
	 * 在获得请求/index 后,populateModel方法在index方法之前先被调用
	 * ,它把请求参数(/index/1?abc=text)加入到一个名为attributeName的model属性中
	 * ,在它执行后index被调用,返回视图名helloWorld和model已由@ModelAttribute方法生产好了。
	 * @param abc
	 * @param model
	 */
	@ModelAttribute
    public void populateModel(@RequestParam String abc, ModelMap model) {
       model.addAttribute("attributeName", abc);
    }
}

你可能感兴趣的:(springmvc梳理2)