SpringMVC学习-数据绑定

reader,writer,request,session

只要Controller的参数中存在Reader,Writer,HttpSession,HttpServletRequest对象即可

public void method1(HttpSession session,Writer writer) 
public void method2(Writer writer, HttpServletRequest request)
public void method3(Reader reader,String str,Writer writer)
public void method4(Writer writer)
Public void method5(Writer writer,HttpServletRequest request) 
@RequestMapping(value="/paramtype")
public void paramtype(HttpServletRequest request,HttpSession session,Writer writer) throws IOException{
		writer.write("sessionid: "+session.getId()+"\n");
		writer.write("contextPath: "+session.getServletContext().getContextPath()+"\n");
		writer.write("RequestURL: "+request.getRequestURL()+"\n");
	}

输入图片说明

@RequestHeader

获取header信息

@RequestMapping(value="/header")
public void requestParam(
        @RequestHeader("User-Agent") String userAgent,
        @RequestHeader(value="Accept")String accepts,
        @RequestHeader(value="Accept-Encoding")String encoding,
        @RequestHeader(value="Accept-Language")String language,
        @RequestHeader(value="Cookie")String[] cookie,							  
         Writer writer){
		try {
			writer.write("userAgent:"+userAgent+"\n");
			writer.write("accepts:"+accepts+"\n");
			writer.write("encoding:"+encoding+"\n");
			writer.write("language:"+language+"\n");
			writer.write("cookie:"+Arrays.asList(cookie));
		} catch (IOException e) {
			e.printStackTrace();
		}		
	}

输入图片说明

@RequestParam

获取请求中的参数信息,参数之间用&分开,默认请求参数名和方法参数,required属性默认为true,如果不存在会报404,也可指定defaultValue填充

//http://127.0.0.1:8080/hellomvc/databind/requestParam1.mvc?username=hello
	@RequestMapping(value="/requestParam1")
	public void requestParam1(@RequestParam String username,Writer writer) throws IOException{
		writer.write("hello "+username);
	}
	
	//http://127.0.0.1:8080/hellomvc/databind/requestParam2.mvc?name=sam&skills=java&skills=scala&cities=beijing&cities=shanghai
	@RequestMapping(value="/requestParam2")
	public void requestParam2(
			@RequestParam(value="name",defaultValue="Jane") String username,
			@RequestParam(required=false)List<String> skills,//也可使用String[]
			@RequestParam(required=false)String cities,//required默认是true,如果没有会报404
			Writer writer) throws IOException{
		writer.write("hello: "+username+"\n");
		writer.write("your skills:"+skills+"\n");
		writer.write("you live in:"+cities);
	}
	}

输入图片说明

@PathVariable

将请求URL中模板变量映射到功能处理方法的参数上

	//http://127.0.0.1:8080/hellomvc/databind/path1/userid:10010/username/world.mvc
	@RequestMapping(value="/path1/userid:{userid}/username/{username}")
	public void pathVariable1(
			@PathVariable(value="userid")int userid,//参数如果不是Int会抛出异常
			@PathVariable(value="username")String username,
			Writer writer) throws IOException{
		writer.write("userid: "+userid+"\n");
		writer.write("username: "+username);
	}

输入图片说明

@ModelAttribute

@ModelAttribute修饰的方法会在每次该控制器的请求方法被调用时调用 如果返回一个对象,这个对象会放到Model中

@ModelAttribute("user1") //会将user放到model中
	public User modelAttribute(){
		User user=new User();
		user.setUsername("sam");
		user.setSkills(Arrays.asList("spring","mybatis"));
		return user;
	}

	@ModelAttribute
	public void printTitle(Writer writer)throws IOException{
		writer.write("Hello World"+"\n");
	}

输入图片说明

@ModelAttribute修饰的参数

如下,会使用请求的参数构造user对象,放到ModelMap中,key为user2中

//http://127.0.0.1:8080/hellomvc/databind/modelAttributeParam.mvc?username=kate&skills=java&skills=scala
	@RequestMapping(value="/modelAttributeParam")
	public String request3(Writer writer,@ModelAttribute("user2") User user)throws IOException{;
		return "/databind/parameters";
	}

输入图片说明

@SessionAttribute

@SessionAttribute修饰类,将modelMap中的属性放到session中

@SessionAttributes("user")//会将user放到session中
public class SessionAttributeController {
}

输入图片说明

转载于:https://my.oschina.net/Endless2010/blog/1507417

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值