千家信息网

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

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章将为大家详细讲解有关springmvc之常用注解和操作传入参数的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。springmvc常用注
千家信息网最后更新 2024年09月22日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之常用注解和操作传入参数的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

方法 参数 数据 注解 对象 控制器 控制 常用 方式 类型 封装 测试 示例 分析 相同 作用 信息 内容 写法 名字 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 小麦加速服务器无法加速度 湖北交友软件开发定做 网络安全保险理赔案例 医疗器械网络安全需求规范文档 湖北网络安全继续教育 网络技术带来什么好处 生产力工具软件开发 智慧识图的文字会上传到服务器吗 开源服务器机群管理平台 数据库中关系模型的转换 网络技术真实案例 网络安全防护类平台建设工作 青岛海天炜业工控网络安全 苹果系统怎么清理文件数据库 安宁信息化软件开发报价表 信息网络技术的核心 dell710服务器 上海生态软件开发创新服务 计算机网络技术要编程吗 东城区管理软件开发介绍 宽带服务器密码怎么设置 数据库中增删改查的c语言实现 领导排序 数据库设计 数据库简单查询 合作软件开发的优势 韩服英雄联盟更新服务器不在线 饥荒专用服务器模组用不了 拼多多软件开发工程师的待遇如何 长沙嵌入式软件开发待遇 好未来软件开发待遇怎么样
0