SpringMVC(三)HTTP 请求绑定数据

绑定参数的注解

@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.Localejava.security.Principal,可以通过SerlvethttpServletRequestgetLocale()getUserPrincipal()得到相应的值。如果处理方法的入参类型为localeprincipal,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);

}
 

猜你喜欢

转载自llyilo.iteye.com/blog/2366249