@RequestBody:
接收json对象的字符串,ajax请求时指定要dataType: "json",contentType:"application/json" 这样就可以轻易的将一个对象或者List传到Java端,使用@RequestBody即可绑定对象或者List.
需要把所有请求参数作为json解析,请求的url不能包含key=value
@RequestMapping
映射URL到控制器类中(或到controller控制器的处理方法上),支持通配符*
Controller加的时候,使用跟这个注解的方法的请求地址是相对于这个类上的@RequestMapping而言的,当controller没有此注解时,方法上的@requestMapping是绝对路径
2、属性:value、params、method、headers
1、params指定参数:@RequestMapping(value = "testParams", params = { "param1=value1", "param2", "!param3" })三个参数,第一个值必须等于value1,第二个必须存在、值不管,第三个必须不存在,这样才能访问该方法
2、method,限制能够访问的方法类型,method = { RequestMethod.GET, RequestMethod.DELETE }
3、headers通过请求头缩小@RequestMapping的映射范围 headers = { "host=localhost", "Accept" }
只有当请求头中包含Accept信息,host为localhost时
方法支持的参数和返回类型:
方法参数:
httpServlet:httpServletRequest、httpServletResponse和HttpSession,spring调用方法时自动赋值,参数中写、直接用;httpSession如果还没有建立起来会用问题
webRequest:该对象可以访问到存放在HttpServletRequest和HttpSession中的属性值
InputStream、outputStream、Reader和Writer
InputStream和Reader是针对HttpServletRequest而言的,可以从里面取数据;OutputStream和Writer是针对HttpServletResponse而言的,可以往里面写数据。
使用@PathVariable、@RequestParam、@CookieValue和@RequestHeader、@ModelAttribute标记的参数
java.util.Map、Spring封装的Model和ModelMap:封装模型数据
实体类
Spring封装的multipartFile接收上传文件
封装的errors和bindingResult:紧接在需要验证的实体对象参数后,包含了实体对象的验证结果
返回类型:
包含模型和视图的modelAndView对象
模型对象:spring封装好的model和modelmap、map,没有视图要返回时视图名由RequestToViewNameTranslator决定
View对象:在渲染视图的过程中可以给方法定义模型参数、方法中添加值
String字符串:代表视图名称,需要在渲染视图过程中需要模型的话在方法中添加值
Void:直接将返回写过写到httpServletResponse中,没有写的话
@PathVariable标记参数,可以是变量{variable1}
@RequestMapping("/test/{variable1}")
public class MyController {
@RequestMapping("/showView/{variable2}")
public ModelAndView showView(@PathVariable String variable1,@PathVariable("variable2") int variable2){}
}
{variable1}在debug模式下默认去uri模板中找参数名相同的变量
{variable2}明确使用URI模板的variable2变量
@RequestParam绑定httpservletRequest参数到控制器方法参数
@RequestParam(value = "per_page", required = false,defaultValue = "10")
@CookieValue绑定cookie值到controller方法参数
public String testCookieValue(@CookieValue("hello") String cookieValue,@CookieValue String hello)
@requestHeader绑定httpServletRequest头信息到controller方法参数,同上,但是大小写不敏感