基于springmvc之常用注解,操作传入参数

作者:Code神之手 时间:2023-03-17 20:49:52 

springmvc常用注解,操作传入参数

@RequestParam

一般用于jsp参数名和后台方法参数指定,对应


/*
   * value=name 当jsp的参数和方法上的参数对应不上,可以指明
   * required() default true;默认true   有参数则必须传
   * */
   public String testRequestParam(@RequestParam(name = "name",required = false) String username){
       System.out.println("执行了..........");
       System.out.println(username);
       return "success";
   }

<body>
   <a href="anno/testRequestParam" rel="external nofollow"  rel="external nofollow" >testRequestParam</a>

</body>

不传参数,required()设置为false,方法有参数

测试

基于springmvc之常用注解,操作传入参数

@RequestBody

一般用于获取post请求的方法体,jsp参数格式为键值对,即 key-value

该注解不适应于get请求,一般用于post请求,例如表单提交

如果要用于get请求,则需


@RequestBody(required = false)

否则报错,此时方法参数为null


@RequestMapping(path = "testRequestBody")
   public String testRequestBody(@RequestBody(required = false) String body){
       System.out.println("执行了..........");
       System.out.println(body);
       return "success";
   }

<body>
   <%--<a href="anno/testRequestParam" rel="external nofollow"  rel="external nofollow" >testRequestParam</a>--%>

<form action="anno/testRequestBody" method="post">
       用户名:<input type="text" name="username"/><br>
       密码:<input type="text" name="password"/><br>
       <input type="submit" value="提交"/><br>
   </form>
</body>

测试

基于springmvc之常用注解,操作传入参数

基于springmvc之常用注解,操作传入参数

@PathVariable

URL的占位符,restful风格,传参格式 url地址后/10

restful请求方式: get,post,put 配合注解@RequestMapping设置请求方式


@RequestMapping(path = "testPathVariable/{sid}",method = RequestMethod.GET)

@RequestMapping(path = "testPathVariable/{sid}",method = RequestMethod.GET)
   /*
   * {sid}表示URL的占位符
   * boolean required() default true;默认参数必须传
   * */
   public String testPathVariable(@PathVariable("sid") String id){
       System.out.println("执行了..........");
       System.out.println(id);
       return "success";
   }

<a href="anno/testPathVariable/10" rel="external nofollow" >testPathVariable</a>

可以下载postman客户端,模拟发送不同的请求方式

基于springmvc之常用注解,操作传入参数

测试:

基于springmvc之常用注解,操作传入参数

基于springmvc之常用注解,操作传入参数

@RequestHeader

获取请求头的某些属性值 如浏览器类型、版本等 不常用


@RequestMapping(path = "testRequestHeader",method = RequestMethod.GET)
   /*获取请求头的某些属性值 如浏览器类型、版本等*/
   public String testRequestHeader(@RequestHeader(value = "Accept") String head){
       System.out.println("执行了..........");
       System.out.println(head);
       return "success";
   }

<a href="anno/testRequestHeader" rel="external nofollow" >testRequestHeader</a>

基于springmvc之常用注解,操作传入参数

@CookieValue

获取JSESSIONID的值


@RequestMapping(path = "testCookieValue",method = RequestMethod.GET)
   public String testCookieValue(@CookieValue(value = "JSESSIONID") String JSESSIONID){
       System.out.println("执行了..........");
       System.out.println(JSESSIONID);
       return "success";
   }

 <a href="anno/testCookieValue" rel="external nofollow" >testCookieValue</a><br>

基于springmvc之常用注解,操作传入参数

@ModelAttribute

用于封装的数据不全补全数据,或者检查封装数据等场景

可作用于方法和参数

修饰方法,方法入参需和控制器方法同参类型,该方法优先于控制器之前执行,且分类有返回值和无返回值

  • 有返回值,则该方法的返回值和控制器的入参相同相同

  • 无返回值,则该方法的参数除了和控制器的入参相同外,还需加一个map类型参数map<string,objct>

例子:

注解修饰的方法有返回值写法


@RequestMapping(path = "testModelAttribute")
   public String testModelAttribute(User user){
       System.out.println("执行了..........");
       System.out.println(user);
       return "success";
   }

@ModelAttribute
   //修饰方法,该方法优先于控制器之前执行
   public User showUser(User user){
       /*模拟jsp传的user封装数据不全,
       通过名字查询数据库对应的信息
       返回全的user对象*/
       user.setBirthday(new Date());
       return user;
   }

<form action="anno/testModelAttribute" method="post">
       用户名:<input type="text" name="uname"/><br>
       年龄:<input type="text" name="age"/><br>
       <input type="submit" value="提交"/><br>
   </form>

注解修饰的方法无返回值写法


@RequestMapping(path = "testModelAttribute")
   public String testModelAttribute(@ModelAttribute("key") User user){
       System.out.println("执行了..........");
       System.out.println(user);
       return "success";
   }

@ModelAttribute
   //修饰方法,该方法优先于控制器之前执行
   public void showUser(User user, Map<String,User> userMap){
       /*模拟jsp传的user封装数据不全,
       通过名字查询数据库对应的信息
       返回全的user对象*/
       user.setBirthday(new Date());
       userMap.put("key",user);
   }

测试

基于springmvc之常用注解,操作传入参数

基于springmvc之常用注解,操作传入参数

@SessionAttributes

注解只能作用于类,用于存取数据到session域对象中,实现方法数据共享

实现方式:从request域对象中复制数据到session域中


/**
* @Date 2019/9/12 2:05
* by mocar
*/
@Controller
@RequestMapping(path = "/anno")
@SessionAttributes(names = {"msg"})//从request域对象中复制到session域对象
public class annoController {

@RequestMapping("/setRequest")//存入
   public String setRequest(ModelMap modelMap){
       System.out.println("setRequest......");
       modelMap.addAttribute("msg","test");//往Request域对象存值
       return "success";
   }

@RequestMapping("/getSession")//获取
   public String getSession(ModelMap modelMap){
       System.out.println("getSession.......");
       Object msg = modelMap.get("msg");
       System.out.println(msg.toString());
       return "success";
   }

@RequestMapping("/delSession")//删除
   public String delSession(SessionStatus sessionStatus,ModelMap modelMap){
       System.out.println("delSession.......");
       sessionStatus.setComplete();
       Object msg = modelMap.get("msg");
       System.out.println(msg.toString());
       return "success";
   }

}

jsp:


    <br>
   <a href="anno/setRequest" rel="external nofollow" >setRequest</a><br>
   <a href="anno/getSession" rel="external nofollow" >getSession</a><br>
   <a href="anno/delSession" rel="external nofollow" >delSession</a><br>

success.jsp 设置不忽略EL表达式,显示session域数据


<%--
 Created by IntelliJ IDEA.
 User: Mocar
 Date: 2019/9/11
 Time: 4:34
 To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
   <title>快速入门</title>
</head>
<body>
   <h3>success</h3>

${sessionScope}

</body>
</html>

setsession

基于springmvc之常用注解,操作传入参数

getsession

基于springmvc之常用注解,操作传入参数

delsession

基于springmvc之常用注解,操作传入参数

来源:https://blog.csdn.net/Seven71111/article/details/100755966

标签:springmvc,注解,传入参数
0
投稿

猜你喜欢

  • java中的final关键字详解及实例

    2022-03-02 11:26:59
  • 浅谈Ribbon、Feign和OpenFeign的区别

    2022-12-21 15:40:27
  • HTTP基本认证(Basic Authentication)的JAVA实例代码

    2022-06-08 13:03:32
  • 简单了解Java synchronized关键字同步

    2022-07-25 10:38:05
  • Java实现任务超时处理方法

    2023-01-09 14:46:45
  • Java实现链表数据结构的方法

    2023-10-19 20:36:57
  • C#实现简单的计算器小功能

    2023-05-13 06:46:11
  • Springboot实现阿里云通信短信服务有关短信验证码的发送功能

    2022-07-24 15:36:53
  • Android studio 出现错误Run with --stacktrace option to get the stack trace. Run with --info or --debu

    2022-10-25 09:43:15
  • Android以对话框形式制作数字软键盘示例

    2022-12-07 07:37:03
  • Android实现可点击展开的TextView

    2022-04-02 04:58:01
  • Android使用Intent的Action和Data属性实现点击按钮跳转到拨打电话和发送短信界面

    2021-09-04 15:39:22
  • VC对自定义资源加密解密(AES)的详解

    2023-01-10 00:27:15
  • Android图片三级缓存开发

    2023-12-03 22:42:43
  • Java动态 代理和AOP应用示例

    2023-11-26 07:45:02
  • 浅析Java中Map与HashMap,Hashtable,HashSet的区别

    2022-05-31 13:46:57
  • Android Service总结及详细介绍

    2023-11-15 14:19:43
  • C#实现合并多张图片为GIF动态图

    2022-12-13 04:16:35
  • 浅谈JMeter engine启动原理

    2022-02-22 03:06:47
  • SpringBoot中 Jackson 日期的时区和日期格式问题解决

    2021-09-06 19:37:50
  • asp之家 软件编程 m.aspxhome.com