博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC-传值到Handler
阅读量:5901 次
发布时间:2019-06-19

本文共 2220 字,大约阅读时间需要 7 分钟。

hot3.png

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 namepublic 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()

username:
passwrod:

@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

你可能感兴趣的文章
Netty 4.1.35.Final 发布,经典开源 Java 网络服务框架
查看>>
Eclipse中修改代码格式
查看>>
关于 error: LINK1123: failure during conversion to COFF: file invalid or corrupt 错误的解决方案...
查看>>
Linux 进程中 Stop, Park, Freeze【转】
查看>>
PHP盛宴——经常使用函数集锦
查看>>
安装gulp及相关插件
查看>>
如何在Linux用chmod来修改所有子目录中的文件属性?
查看>>
Hyper-V 2016 系列教程30 机房温度远程监控方案
查看>>
笔记:认识.NET平台
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
我的友情链接
查看>>
PHP 程序员的技术成长规划
查看>>
python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
查看>>
js replace,正则截取字符串内容
查看>>
javascript继承方式详解
查看>>
lnmp环境搭建
查看>>
自定义session扫描器精确控制session销毁时间--学习笔记
查看>>
PHP队列的实现
查看>>
单点登录加验证码例子
查看>>
[T-SQL]从变量与数据类型说起
查看>>