绑定参数的注解
@RequestParam | 绑定请求参数 |
@CookieValue | 绑定cookie的值 |
@RequestHeader | 绑定请求头参数 |
@PathVariable | 绑定URL中的变量 |
示例
// 绑定请求参数
@RequestMapping(value="/index")
public ModelAndView index(@RequestParam("sex") String sex,
@RequestParam("age") String age) {
System.out.println(sex);
System.out.println(age);
// 返回指定的jsp页面
ModelAndView mav = new ModelAndView("message");
return mav;
}
@RequestParam
有以下三个参数
1.value:参数名
2.required:是否必填,默认为true,表示请求中必须包含对应的参数名,如果不存在将抛出异常
@RequestParam(value = "sex" , required = false) String sex // 如果非必填,则必须指定为false
3.defaultValue: 默认参数名,设置该参数时,自动将required设为false。极少情况需要使用该参数,也不推荐使用该参数.
// 绑定cookie,请求头参数
@RequestMapping(value="/index")
public ModelAndView index(@CookieValue("JSESSIONID") String sessionId,
@RequestHeader("Accept-Language") String acceptlanguage) {
System.out.println(sessionId);
System.out.println(acceptlanguage);
// 返回指定的jsp页面
ModelAndView mav = new ModelAndView("message");
return mav;
}
// 绑定URL中的变量
@RequestMapping(value="{userId}",method=RequestMethod.POST)
public ModelAndView index(@PathVariable("userId")String userId) {
System.out.println(userId);
// 返回指定的jsp页面
ModelAndView mav = new ModelAndView("message");
return mav;
}
---------------------------------------------------------------------------------------------------------------------------------------------------------
使用命令/表单对象绑定
@RequestMapping(value="{userId}",method=RequestMethod.POST)
public ModelAndView index(User user) {
System.out.println(user.userId);
// 返回指定的jsp页面
ModelAndView mav = new ModelAndView("message");
return mav;
}
//使用Servlet API对象作为入参
@RequestMapping(value="/index")
public void index(HttpServletRequest request,
HttpServletResponse response,
HttpSession session) throws ServletException, IOException {
request.getRequestDispatcher("message.jsp").forward(request, response);
}
注:如果处理方法自行使用
httpServletResponse
返回响应,则处理方法的返回值设置成
void
即可。
// 使用Spring的Servlet API代理类
public void index(WebRequest request){
}
使用IO对象作为入参
public void index(OutputStream os){
}
除此之外,还支持java.util.Locale、java.security.Principal,可以通过Serlvet的httpServletRequest的getLocale()及getUserPrincipal()得到相应的值。如果处理方法的入参类型为locale或principal,Spring MVC自动从请求对象中获取相应的对象并传递给处理方法的入参。
返回json数据格式
1.导入jar包
jackson-core-asl-1.9.13.jar
jackson-mapper-asl-1.9.13.jar
2.添加XML配置
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json</value> <value>text/json</value> </list> </property> </bean> </list> </property> </bean>
3.代码
@RequestMapping(value="/index")
public ResponseEntity<User> index(){
User user = new User();
user.setAge("A");
user.setSex("B");
return new ResponseEntity<User>(user,HttpStatus.OK);
}