SpringMVC-传值到Handler

1.通过@RequestParam 坏处:参数变成url地址的一部分,如果没有值,则报错

如果是必不可少的参数,建议前面加@ RequestParam 

解决办法是,设置required为false

@RequestParam(value="age",required=false,defaultValue="0")

参数:

value:表示传递的属性名

required:表示是否为必须的

defaultValue:表示设置默认值---当传递的参数无法自动转型时


@Controller
 
public class welcome {
@RequestMapping({"welcome"})
//@RequestParam("name") String name 意思是:拦截器拦截名为name的属性然后把值赋给String name
public String welcomeTesr(@RequestParam("name") String name){
System.out.println("wenlcome"+name);
    return "/welcome";
}
}


2.通过直接配置参数 坏处:没传参数时候,值为null


@Controller
 
public class welcome {
@RequestMapping({"welcome"})
public String welcomeTesr(String name){
System.out.println("wenlcome"+name);
return "/welcome";
}
}


3.如果是动态参数,使用@pathvariable 接收


@RequestMapping(value="/{username}",method=RequestMethod.GET)
 
public String show (@PathVariable(value="username") String username,Model model){
System.out.println(username);
/*model.addAttribute(users.get(username));*/
return "/users/show";
 
}


4.使用ReqeustHewder绑定请求头的属性值

请求头包含了若干个属性,服务器可据此获取客户端的信息,通过@RequestHeader即可将求头中的属性值绑定到处理方法的参数中


@RequestMapping(value="/handler")
public String handler(@RequestHeader("Accept-Encoding") String encoding){
System.out.println(endoding);
}


5.使用CookieValue绑定请求中的cookie值

@CookieValue可以让方法绑定某个cookie值


@RequestMapping("/testCookieValue")
public String testCookieValue(@cookieValue("JSESSIONID") String sessionId){
System.out.println("testCookieValue:sessionId:"+sessionId);
}


6.使用PoJo对象绑定请求参数值
SpringMVC 会按请求参数名和POJO属性名进行自动匹配,自动为该对象填充属性值。支持级联属性.

如:user.getName(),user.getId()


<form action="sh/testPOJO" method="POST">
username:<input type="text" name="username">
passwrod:<input type="password" name="password">
<input type="submit" value="提交" />
</form>


@Controller
@RequestMapping(value = "/sh")
public class SpringHandler {
@RequestMapping(value="testPOJO",method=RequestMethod.POST)
public String testPOJO(User user){
System.out.println(user);
return null;
}
}


public class User {
private String username;
private String password;
}




7.使用ServletAPI :
HttpServletReqeust、HttpservletResponse、HttpSession、
ava.security.principal、
Locale、
inputstream、
OutputStream、
Reader、

writer,调用的是response的返回getWriter()的方法

@RequestMapping(value="testServletApi")
public String testServletApi(HttpServletRequest reqeust,HttpServletResponse response){
System.out.println(reqeust+":"+response);
return HELLO;
}








转载于:https://my.oschina.net/gavinnie/blog/396159

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值