SpringBoot 获取前端页面参数的集中方式总结

摘要:
SpringBoot的一个好处就是通过注解可以轻松获取前端页面的参数,之后尅将参数经过一系列处理传送到后台数据库,前端时间正好用到。12345678@RequestMapping@ResponseBodypublicStringtest1{Strings1=name;Strings2=pwd;Strings1+s2;}启动主程序,访问浏览器出现下图,表明注入参数成功:1xxxyyy2.第二种方式是通过HttpServletRequest来获取前端页面参数,代码如下。
SpringBoot的一个好处就是通过注解可以轻松获取前端页面的参数,之后尅将参数经过一系列处理传送到后台数据库,前端时间正好用到。大致分为一下几种:

1.指定前端URL请求参数名称与方法名称一致,这种方式简单来说就是URL请求格式中参数需要与方法的参数名称对应上,举个例子,这么一个URL请求:http://localhost:8080/0919/test1?name = xxx & pwd = yyy在指定的控制器类上加上Controller 注解,同时指定RequestMapping注解即可,当请求路径参数与方法参数匹配上时会自动注入。

1
2
3
4
5
6
7
8
@RequestMapping("/test1")
@ResponseBody
publicString test1( String name, String pwd )
{
String s1 = name;
String s2 = pwd;
String s1 + s2;
}

启动主程序,访问浏览器出现下图,表明注入参数成功:

1
xxxyyy

2.第二种方式是通过HttpServletRequest来获取前端页面参数,代码如下。简单来说就是通过调动Request的getParameter方法来获取参数,比如访问路径类似这样:http://localhost:8080/0919/test2?firstName = zhang & lastName = san

1
2
3
4
5
6
7
8
@RequstMapping("/test2")
@ResponseBody
publicString test2( HttpServletRequest request )
{
String firstName = request.getParamenter("firstName");
String lastName = request.getParameter("lastName");
returnfirstName = lastName;
}

启动主程序,访问浏览器出现如下结果,表明注入成功,这种方式也可以表单参数,一般get和post请求都可以

1
zhangsan

3.第三种方式是通过创建一个JavaBean对象来封装表单参数或者是请求URL路径中参数,具体代码如下

1
2
3
4
5
6
7
8
@RequestMapping("/test3")
@ResponseBody
publicString test3( Student student )
{
String firstName = student.getFirstName();
String lastName = student.getLastName();
returnfirstName = lastName;
}

对应的JavaBean对象如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
publicclassStudent
{
privateString firstName;
privateString lastName;
publicStudent()
{
super();
}
publicString getFirstName()
{
returnfirstName;
}
publicvoidsetFirstName( String firstName )
{
this.firstName = firstName;
}
publicString getLastName()
{
returnlastName;
}
publicvoidsetLastName( String lastName )
{
this.lastName = lastName;
}
}

简单来说就是将表单参数作为一个JavaBean类的属性,通过设置方法参数为一个JavaBean对象,之后在方法中通过调用对象的get方法来获取表单传过来的参数,比如访问路径是:http://localhost:8080/0919/test3?firstName = zhang & lastName = san 启动主程序,出现如下结果,表明参数注入成功,这种方式如果请求的表单参数很多,可以考虑使用这种方式。

1
zhangsan

4.第四种方式是通过PathVariable注解来绑定请求路径的参数,参考代码如下

1
2
3
4
5
6
@RequestMapping( value ="/test4/{a}/{bbb}")
@ResponseBody
publicString test4(@PathVariable("a") String aaa,@PathVariableString bbb )
{
returnaaa+bbb;
}

这种情况简单来说就是URL中采用动态绑定的形式表示。之后在方法中指定的参数通过PathVariable来将请求的URL中的参数绑定到方法参数,在这里不指定PathVariable注解的具体值时按照请求路径动态变量的顺序与注解顺序一致即可注入。如果想指定注入,那么指定PathVariable注解的值与动态变量名一致即可特定注入,比如请求路径是:http://localhost:8080/0919/test4/111/222

启动主程序,出现如下结果,表明注入成功:

1
111222

5.第五种方式是通过RequestParam注解来获取,具体代码如下:

1
2
3
4
5
6
@RequestMapping( value ="/test5")
@ResponseBody
publicString test5(@RequestParam("aaa") String aac,@RequstParam("bbb") String bbb)
{
returnaac+bbb;
}

这种方式是通过URL路径的形式将请求路径上的参数绑定都方法参数上,简单来说就是实参值赋给响应的形参,与上面这种方式的区别是前者是动态URL模板注入,这里是普通的URL请求注入,比如访问这个路径:

http://localhost:8080/0919/test5?aaa = 111 & bbb = 4444

启动主程序,出现如下结果,表明注入成功

1
1114444

6.第六中方式是通过ModelAttribute方式来注入参数的,具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
@RequestMapping( value ="/kkk")
publicString kkk()
{
return"test2";
}
@RequestMapping( value ="/test6")
publicString test6(@ModelAttributer("kkk") Student s )
{
return"test3";
}

这种方式一般是通过在页面展示,所以这里创建两个页面做测试test2.jsp和test3.jsp进行测试

1
2
3
4
5
6
7
8
<body>
<formaction = "<%= request.getContextPath()%>/0919/test6" method = "post">
firstName:<inputtype = "text" name = "firstName"/><br/>
lastName<inputtype = "text" name = "lastName"><br/>
<inputtype = "submit" value = "提交"/>
<inputtype = "reset" value = "重置">
</form>
</body>
1
2
3
<body>
${kkk.firstName} + ${kkk.lastName}
</body>

简单来说就是通过ModelAttribute注解将请求参数封装到指定的Javabean对象,同时通过value值将这接受了表单参数对象赋给value,这里将S赋给了一个变量名为kkk的存在,之后就可以在JSP页面通过这个变量名使用el表达式来获取传过来的参数,测试路径为:http://localhost:8080/0919/kkk

SpringBoot 获取前端页面参数的集中方式总结第1张

输出结果为:

1
bbb+aaa

免责声明:文章转载自《SpringBoot 获取前端页面参数的集中方式总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇sas,log,output,ods输出管理(html output_object output_statement)给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Kafka平滑滚动升级2.4.0指南

今天测试了下kafka从2.0.0滚动升级至2.4.0,下面做一下记录。这个链接是Kafka官网对升级2.4.0的指南,可以参考  http://kafka.apache.org/24/documentation.html#upgrade好了,步入正题吧!首先,线上环境,在对kafka滚动升级的过程中,一定是不能影响业务运行的吧,否则一顿操作猛如虎,业务骂...

Java中枚举的使用

常量与枚举 一、常量定义方法        常量是其值固定不变的量,一般可以分为字面常量和命名常量,如数字1,2,1.3,字符串“abc”,这些就是字面常量,而命名常量是我们使用一些有意义的名称来代表字面常量值,通常命名常量有助于我们更好地理解程序的逻辑。        在Java中,我们通常使用public static final ... 方式来定义常...

手把手教你实现热更新功能,带你了解 Arthas 热更新背后的原理

摘自:https://www.cnblogs.com/goodAndyxublog/p/11880314.html 手把手教你实现热更新功能,带你了解 Arthas 热更新背后的原理 文章来源:https://studyidea.cn/java-hotswap 一、前言# 一天下午正在摸鱼的时候,测试小姐姐走了过来求助,说是需要改动测试环境 mock...

接口上传base64编码图片

1 package com.*.util; 2 3 import java.io.FileInputStream; 4 5 6 import java.io.FileOutputStream; 7 import java.io.IOException; 8 import java.io.InputStream; 9 import j...

java生成解析xml的另外两种方法Xstream

Xstream生成和解析xm和JAXB生成和解析xml的方法。 一,Xstream Xstream非jdk自带的,需要到入Xstream-1.4.3.jar和xpp3_min-1.1.4.jar 1.Xstream简介;  使用限制: JDK版本不能<1.5. 虽然预处理注解是安全的,但自动侦查注解可能发生竞争条件. 特点: 简化的API; 无映射文...

C#获取文件大小

当然了都需要引入System.IO这个命名空间 第一个: public static long GetDirectoryLength(string dirPath){//判断给定的路径是否存在,如果不存在则退出if (!Directory.Exists(dirPath))return 0;long len = 0; //定义一个DirectoryInfo对...