SpringBoot入坑-请求参数传递
前一篇我们探讨了关于springboot的配置文件和Controller的使用,本篇我们来一起探讨一下关于springboot如何传递参数的知识。
参数传递我们最常见的就是在url后通过?/&两个符号来将参数传递到后台,当然springboot也是也一样,我们可以通过这种方式将参数传递到后台,那么后台如何接收这些参数呢?下面我们一起学习一下:
这里我们将用到@RequestParam注解,这个注解有三个参数分别是:value、required、defaultValue,具体的用法,下面一一为大家介绍。
@RequestMapping(value = "/par1", method = RequestMethod.GET)
public String reqPar1(@RequestParam("name") String name){
return name;
}
通过@RequestParam注解声明接收用户传入的参数,这样当我们在浏览器输入http://localhost:8080/par1?name=123
@RequestMapping(value = "/par2", method = RequestMethod.GET)
public String reqPar2(@RequestParam(value = "name", required = false) String name){
if(null != name){
return name;
}else{
return "未传入参数";
}
}
我们看到第一个接口我们并没有写value和required,其实第一个接口是简写,等同于
@RequestParam(value = "name", required = true)
required=true:该参数不能为空;相反required=false:该参数能为空
@RequestMapping(value = "/par3", method = RequestMethod.GET)
public String reqPar3(@RequestParam(value = "name", defaultValue = "null") String name){
return name;
}
最后说一下defaultValue看字面意思,估计你已经想到它的作用了,是的当我们未穿入该参数时的默认值。
下面我们先看一下博客园中博客地址的链接:http://www.cnblogs.com/AndroidJotting/p/.html,请大家注意红色位置,这样的参数传递是不是很有趣,我们并不用设置参数的key,那么这是怎么实现的呢?请接着看。
@RequestMapping(value = "/par4/{id}", method = RequestMethod.GET)
public Integer reqPar4(@PathVariable("id") Integer id){
return id;
}
这样是不是和博客园的访问很像,这样我们便可以直接将传递参数加在url后面。最后再来活学活用一下:
@RequestMapping(value = "/{id}/par5", method = RequestMethod.GET)
public Integer reqPar5(@PathVariable("id") Integer id){
return id;
}
OK到这里关于参数传递的内容就和大家分享完毕,最后再给大家补充一个小知识:
resources资源springboot默认只映射static、templates两个文件夹下的文件,那么如何进行拓展呢?很简单,比如我们在resources下新建一个image资源,这是我们需要打开项目的主类:xxApplication
@SpringBootApplication
public class Springboot1Application extends WebMvcConfigurerAdapter { public static void main(String[] args) {
SpringApplication.run(Springboot1Application.class, args);
} @Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
super.addResourceHandlers(registry);
//这种方式会在默认的基础上增加/image/**映射到classpath:/image/,不会影响默认的方式,可以同时使用。
registry.addResourceHandler("/image/**")
.addResourceLocations("classpath:/image/");
}
}
这样简单一配置,我们就完成了上面的需求。
下一篇springboot持久化操作
SpringBoot入坑-请求参数传递的更多相关文章
- SpringBoot入坑-项目搭建
对于学过三大框架的小童鞋,从今天开始给大家带来一套新的框架学习,相信对于做程序的小童鞋一定有所耳闻,作为下一代java开发框架springboot,减去了繁琐的xml配置,相信用过spring.sta ...
- Idea+springboot入坑之路
环境准备 IDEA 社区版: 2019.3 jdk: 1.8.0_241 tomcat: 7.0.99 maven: 3.6.3 spring-boot:2.2.5.RELEASE 插件 spring ...
- SpringBoot入坑指南之六:使用过滤器或拦截器
在Web应用中,常常存在拦截全部或部分请求进行统一处理的应用场景,如权限校验.参数校验.性能监控等. 在SpringMVC框架中,我们可以通过过滤器或拦截器实现相关功能,spring-boot-sta ...
- SpringBoot入坑-持久化操作
前面内容中我们已经了解到了SpringBoot关于参数传递的相关知识,本篇我们一起来学习一下SpringBoot关于数据库持久化操作的知识,这里我们使用JPA进行数据库的持久化操作. 首先由于我们需要 ...
- SpringBoot入坑-配置文件使用
经过上一篇的介绍,相信小伙伴们已经按奈不住内心对springboot的向往,本篇我将继续向小伙伴介绍springboot配置文件的配置,已经全局配置参数如何使用,好了下面开始我们今天的内容介绍. 我们 ...
- Angular 从入坑到挖坑 - HTTP 请求概览
一.Overview angular 入坑记录的笔记第四篇,介绍在 angular 中如何通过 HttpClient 类发起 http 请求,从而完成与后端的数据交互. 对应官方文档地址: Angul ...
- Spring Cloud Gateway入坑记
Spring Cloud Gateway入坑记 前提 最近在做老系统的重构,重构完成后新系统中需要引入一个网关服务,作为新系统和老系统接口的适配和代理.之前,很多网关应用使用的是Spring-Clou ...
- Angular 从入坑到挖坑 - Router 路由使用入门指北
一.Overview Angular 入坑记录的笔记第五篇,因为一直在加班的缘故拖了有一个多月,主要是介绍在 Angular 中如何配置路由,完成重定向以及参数传递.至于路由守卫.路由懒加载等&quo ...
- Angular 从入坑到挖坑 - 路由守卫连连看
一.Overview Angular 入坑记录的笔记第六篇,介绍 Angular 路由模块中关于路由守卫的相关知识点,了解常用到的路由守卫接口,知道如何通过实现路由守卫接口来实现特定的功能需求,以及实 ...
随机推荐
- iOS 开开中textfield的一些记录
1.placehold 使用KVC机制改变占位符的颜色和大小 [textField setValue:[UIColor redColor] forKeyPath:@"_placeholder ...
- angular.copy()
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Java知识回顾 (8) 集合
早在 Java 2 中之前,Java 就提供了特设类.比如:Dictionary, Vector, Stack, 和 Properties 这些类用来存储和操作对象组. 虽然这些类都非常有用,但是它们 ...
- SuppressLint错误
解决方法:找到注解包,添加到项目提示重复,去掉后又可以了,很奇怪,不过可以了. 方法2:把eclipse项目关闭重新打开,错误又消失了.
- 机器学习中Batch Size、Iteration和Epoch的概念
Batch Size:批尺寸.机器学习中参数更新的方法有三种: (1)Batch Gradient Descent,批梯度下降,遍历全部数据集计算一次损失函数,进行一次参数更新,这样得到的方向能够更加 ...
- 网页出现400 Bad Request Request Header Or Cookie Too Large错误的解决方法
在开发项目过程中,突然遇到400 Bad Request Request Header Or Cookie Too Large的报错,我也是第一次出现这样的错误,感觉还是挺新奇的. 分析下出现错误的原 ...
- Swift Enum 枚举
前言 枚举是一种自定义的数据类型,在 Swift 中枚举类型拥有相当高的自由度.在 Swift 语言中枚举是一级类型,它拥有在其他语言中只有类才拥有的一些特性,比如实例方法,实例构造器等. 枚举声明的 ...
- C++ OpenMp的并行编程
基于OpenMp的并行编程 功能:并行处理比较耗时的for循环 在OpenMP中,对for循环并行化的任务调度使用schedule子句来实现: 使用格式:schedule(type[,size]) t ...
- 二叉树遍历-c实现
这里主要是三种遍历,先序(preorder,NLR),中序(Inorder,LNR),后序(Postorder,LRN) N:node,L:left,R:right 基本排序:先序(NLR,节点,左, ...
- macOS 下 PHPStorm + Xdebug 调试 Docker 环境中的代码
0x00 描述 宿主机是 mac mini,构建的项目在 docker 中,所以需要在 PHPStorm 上配置 Xdebug 进行远程代码调试. 0x01 环境 宿主机:macOS High Sie ...