欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > SpringMVC(三)请求

SpringMVC(三)请求

2025/10/30 14:56:14 来源:https://blog.csdn.net/m0_74977981/article/details/144889396  浏览:    关键词:SpringMVC(三)请求

目录

一、RequestMapping注解

1.RequestMapping的属性

实例

1.在这里创建文件,命名为Test:

2.复现-返回一个页面:

创建test界面(随便写点什么):

Test文件中编写:

​编辑 运行:

3.不返回界面,返回字符串:

编辑Test文件:​编辑

实现这两个小功能后的完整的Test:

2.RequestMapping的请求参数绑定

3.入参情况

1.请求携带一个参数:

2.请求携带两个入参

 3.(两个及以上)可以以对象的形式传参

4.杂糅传参

 5.用form表单的形式提交

二、不常用的注解

1.RequestParam注解


经过前面对SpringMVC的配置和原理的讲解,接着进行SpringMVC请求的相关讲解。

一、RequestMapping注解

RequestMapping注解的作用是建立请求URL和处理方法之间的对应关系

RequestMapping注解可以作用在方法和类上

1. 作用在类上:第一级的访问目录

2. 作用在方法上:第二级的访问目录

3. 细节:路径可以不编写 / 表示应用的根目录开始

1.RequestMapping的属性

1. path 指定请求路径的url

2. value value属性和path属性是一样的

3. mthod 指定该方法的请求方式(通常是GET和POST请求,默认GET请求)

现在以实例的形式进行讲解:

实例

1.在这里创建文件,命名为Test:

2.复现-返回一个页面:

在里面写一个方法test1--表示返回一个名为test的界面(既然这里return用了,那么就要保证html中当真存在这么一个方法--去创建)

创建test界面(随便写点什么):

Test文件中编写:
 运行:

注意这里项目名称后的一级请求/二级请求,返回test.html界面内容(中文乱码,正常)

3.不返回界面,返回字符串:
编辑Test文件:

更改后端就要重启服务器:

同样步骤得到(这里显示的就是String字符串而非界面了):

实现这两个小功能后的完整的Test:

package controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller //首先先打上注解-创建对象并且标明这里是Controller层
@RequestMapping(path="/test") //一级请求路径(写不写/都无所谓)
public class Test {/*** /role/save* method="当前方法允许请求方式能访问"* params="请求路径上传参数"* @return*///打开页面的请求对应@RequestMapping(path="/t1",method={RequestMethod.GET}) //二级请求路径//这里指定了方法为GET(默认是GET),除此之外还有POST等等public String test1(){return "test";}//返回字符串@ResponseBody@RequestMapping(path="/t2")public String test2(){return "hello!";}}

2.RequestMapping的请求参数绑定

(1). 绑定机制

1. 表单提交的数据都是k=v格式的 username=haha&password=123

2. SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的

3. 要求:提交表单的name和参数的名称是相同的

(2). 支持的数据类型

1. 基本数据类型和字符串类型

2. 实体类型(JavaBean)

3. 集合数据类型(List、map集合等)

基本数据类型和字符串类型

1. 提交表单的name和参数的名称是相同的

2. 区分大小写

实体类型(JavaBean)

1. 提交表单的name和JavaBean中的属性名称需要一致

2. 如果一个JavaBean类中包含其他的引用类型,那么表单的name属性需要编写成:对象.属性 例如:address.name

给集合属性数据封装

1. JSP页面编写方式:list[0].属性

3.入参情况

1.请求携带一个参数:

这里给出一个例子(同样这个例子是写在Test文件中的):

//一个入参时@ResponseBody@RequestMapping(path="/t3",method={RequestMethod.GET}) //二级请求路径public String test3(String name){return name;}

重启服务器:

 将入参携带在请求中:

2.请求携带两个入参

这里给出一个例子(同样这个例子是写在Test文件中的):

 //两个及以上不同类型入参@ResponseBody@RequestMapping(path="/t4",method={RequestMethod.GET}) //二级请求路径public String test4(String name,Integer age,char sex){return "name="+name+"age="+age+"sex="+sex;}

重启服务器:

将入参携带在请求中:

 3.(两个及以上)可以以对象的形式传参

创建User类(生成get和set方法):

这里给出一个例子(同样这个例子是写在Test文件中的):

//对象的形式传参@ResponseBody@RequestMapping(path="/t5",method={RequestMethod.GET}) //二级请求路径public String test5(User user){return user.toString();}

重启服务器:

 将入参携带在请求中:

这里就会遵循对象的原则(只传一个时,其他默认为空)

4.杂糅传参

这里给出一个例子(同样这个例子是写在Test文件中的):

//杂糅着用@ResponseBody@RequestMapping(path="/t6",method={RequestMethod.GET}) //二级请求路径public String test7(User user,String father){return user.toString()+father;}

重启服务器:

 将入参携带在请求中:

 5.用form表单的形式提交

前面我们的传参都是通过请求携带的,现在我们来实现通过Form表单来实现入参:

首先修改想要return的前端界面test.html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>我是一个复现界面的例子,我是界面!</h1>
<!--加上表单-->
<form action="/StringMVCTestTwice/test/t5" method="get"><input type="text" name="name"/><br/><input type="text" name="age"/><br/><input type="text" name="sex"/><br/><input type="submit"/>
</form>
<!--表单结束-->
</body>
</html>

并在Test文件中添加:

//form的形式传参@RequestMapping(path="/t7",method={RequestMethod.GET}) //二级请求路径public String test7(User user){return "test";}

随后重启服务器去调用这个请求:

点击提交(就会自动识别跳转到 t5请求):

二、不常用的注解

1.RequestParam注解

1. 作用:把请求中的指定名称的参数传递给控制器中的形参赋值

2. 属性

1. value:请求参数中的名称

2. required:请求参数中是否必须提供此参数,默认值是true,必须提供

3. 代码如下:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;@Controller
@RequestMapping("/dept")
public class DeptController {@RequestMapping("/save")public String save(@RequestParam(value = "username",required = false) String name){System.out.println(name);return "suc";}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词