千家信息网

springmvc之常用注解和操作传入参数的示例分析

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章将为大家详细讲解有关springmvc之常用注解和操作传入参数的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。springmvc常用注
千家信息网最后更新 2025年01月19日springmvc之常用注解和操作传入参数的示例分析

这篇文章将为大家详细讲解有关springmvc之常用注解和操作传入参数的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

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";    }
    testRequestParam 

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

测试

@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";    }
    <%--testRequestParam--%>     
用户名:
密码:

测试

@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";    }
 testPathVariable

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

测试:

@RequestHeader

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

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

@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";    }
  testCookieValue

@ModelAttribute

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

可作用于方法和参数

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

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

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

例子:

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

 @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;    }
用户名:
年龄:

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

@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 userMap){        /*模拟jsp传的user封装数据不全,        通过名字查询数据库对应的信息        返回全的user对象*/        user.setBirthday(new Date());        userMap.put("key",user);    }

测试

@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:

 
setRequest
getSession
delSession

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" %>    快速入门    

success

${sessionScope}

setsession

getsession

delsession

关于springmvc之常用注解和操作传入参数的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0