SpringMVC传输传递 @RquestMapping @ResponseBody @PathVariable和@RequestParam
来源:互联网 发布:淘宝如何开通微淘 编辑:程序博客网 时间:2024/06/05 20:20
什么是URL映射?
当前端发出一个URL请求时,后端要来映射请求获取到URL,并获取到其中的参数
@RequestMapping
添加注解@Controller 将其标识为控制器使用
添加注解@RequestMapping 来映射请求得到url
当我们输入localhost:8080/user/hello 时,后台就能拦截到请求并返回index主页
@controller @RequestMapping("/user") public class UserController{ @RequestMapping("hello") public String myHello(){ return "index"; //表示springmvc返回了一个逻辑视图index } }
将 @RequestMapping 注解在 UserController 类上是添加根路径,用来隔离类中的相同方法。
也就是 项目名/user/hello 这样可以直接找到usercontroller中的hello方法,而不是其他类中的。
@RequestMapping
功能:请求映射,每个URL都有一个对应的函数来处理
几种写法:
@RequestMapping(“/hello”)
@RequestMapping(path={“/hello”,”/index”}) —俩个URL都可以匹配
@RequestMapping(value=”/hello”)
@RequestMapping(value=”/hello”,method=RequestMethod.GET) –限制只能GET请求
@RequestMapping(value=”/hello”,method=RequestMethod.POST) –限制只能POST请求
浏览器直接写URL或者a标签都是get请求,一般情况下,如果使用form表单提交都是post请求
如果限制只能用POST请求时,访问了GET请求就会报错,status = 405
@ResponseBody
@ResponseBody 这个注解的作用是将函数返回值作为请求返回值。没有这个注解的话,请求的响应应该是一个页面,有这个注解的话,则直接返回函数值。
例如:
@Controller public class IndexController{ @RequestMapping(path={"/","/index"}) @ResponseBody public String index(){ return "index"; }
加上@ResponseBody 页面就显示index,不加@ResponseBody就会去模版的目录下去寻找index页面返回。
@PathVariable和@RequestParam
两者的作用都是将request的URL里的参数的值绑定到contorller里的方法参数里的,区别在于,URL写法不同。
@PathVariable用于获取路径中的参数,将参数解析到变量中。
@RequestParam用来获取请求的参数,将参数解析到变量中。
使用@RequestParam时,URL是这样的:http://host:port/path?参数名=参数值
使用@PathVariable时,URL是这样的: http://host:port/path/参数值
例如:对于http://host:port/user/123?type=2&key=z
@RequestMapping(path = {"/profile/{groupId}/{userId}"}) @ResponseBody public String profile(@PathVariable("userId") int userId, @PathVariable("groupId") String groupId, @RequestParam("type", defaultValue = "1") int type, //defaultValue是设置type的默认值 @RequestParam("key", required = false) String key) { return String.format("Profile Page of %s / %d / t:%d k: %s", groupId, userId, type, key); }
页面显示:Profile Page of user / 123 / t:2 k:z
如果请求中某@RequestParam的请求参数不存在,如http://host:port/user/123?type=2,返回的页面就会报错,所以要设置defaultValue(设置参数如果不存在的默认值)或者required(是否一定需要其存在,默认为ture,设置成false的话不存在就不会出错)
通过@RequestParam获取前端参数
@RequestMapping("testRequestParam") public String filesUpload(@RequestParam ("username")String username, @RequestParam ("password") String password) { System.out.println(username + "and" + password); return "index"; }
前端代码
<form action="/gadget/testRequestParam" method="post"> 参数username:<input type="text" name="username"> 参数password:<input type="password" name="password"> </form>
输出: 123 and 123
- SpringMVC传输传递 @RquestMapping @ResponseBody @PathVariable和@RequestParam
- SpringMVC之@PathVariable和RequestParam
- springmvc中@PathVariable和@RequestParam的区别
- springmvc中@PathVariable 和 @RequestParam 的区别
- springmvc中@PathVariable和@RequestParam的区别
- springmvc中@PathVariable和@RequestParam的区别
- springmvc中@PathVariable和@RequestParam的区别
- springmvc中@RequestParam和@PathVariable的区别
- springmvc中@PathVariable和@RequestParam的区别
- springmvc rest @PathVariable和@RequestParam的区别
- SpringMVC(1)----@RequestParam和@PathVariable用法小结
- SpringMVC(1)----@RequestParam和@PathVariable用法小结
- @RequestParam,@PathVariable,@ResponseBody,@RequestBody,@ModelAttribute
- springMVC之@PathVariable @RequestParam
- @RequestParam,@PathVariable,@ResponseBody,@RequestBody,@ModelAttribute学习
- springmvc中@RequestParam和@PathVariable的区别和使用
- @PathVariable和@RequestParam
- @RequestParam和@PathVariable区别
- 冒泡排序
- js只能输入数字或者分号!
- Python High Performance Programming.pdf 英文原版 免费下载
- Natural Language Processing with Python.pdf 英文原版 免费下载
- js输出最后一个字符串
- SpringMVC传输传递 @RquestMapping @ResponseBody @PathVariable和@RequestParam
- 对Go的接口赋值的理解
- Make Your Own Python Text Adventure.pdf 英文原版 免费下载
- Java生成UUID
- 【数据结构】0.1 + 0.2 = 0.30000000000000004该怎样理解?
- 5. Longest Palindromic Substring
- spring与mybatis整合
- 使用腾讯云MTA来进行埋点
- 【Python】pip安装scrapy、mysqlclient出错的解决方法