当前位置: 首页 > news >正文

网站显示已备案目标网站上做关键字布局

网站显示已备案,目标网站上做关键字布局,嘉兴网站建设模板网站,百度网盘私人资源链接前言 上一篇文章介绍了SpringMVC是什么以及它的工作流程和核心组件,介绍入门示例时,提到了RequestMapping注解,那么这篇文章就来介绍SpringMVC中更多的常用的注解,以及它的参数传递。 一. SpringMVC常用注解 1.1 RequestParam …

前言

上一篇文章介绍了SpringMVC是什么以及它的工作流程和核心组件,介绍入门示例时,提到了@RequestMapping注解,那么这篇文章就来介绍SpringMVC中更多的常用的注解,以及它的参数传递。

一. SpringMVC常用注解

1.1 @RequestParam

@RequestParam主要用于将请求参数区域的数据映射到控制层方法的参数上,可以指定参数名、是否必需、默认值等属性。

参数说明
value请求中传入参数的名称,如果不设置后台接口的value值,则会默认为该变量名。
required该参数是否为必传项。默认是true,表示请求中一定要传入对应的参数,否则会报404错误,如果设置为false时,当请求中没有此参数,将会默认为null,而对于基本数据类型的变量,则必须有值,这时会抛出空指针异常。如果允许空值,则接口中变量需要使用包装类来声明。
defaultValue参数的默认值,如果请求中没有同名的参数时,该变量默认为此值。注意默认值可以使用SpEL表达式,如"#{systemProperties[‘java.vm.version’]}"

 1.2 @RequestBody

@RequestBody主要用来接收前端传递给后端的json字符串中的数据 (即请求体中的数据)。

GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。

1.3 @PathVariable

用于将URL中的占位符参数绑定到方法的参数上。

1.4 @RequestHeader

使用 @RequestHeader 注解可以获取指定的请求头信息。

二. SpringMVC的参数传递

日志所需依赖

<log4j2.version>2.9.1</log4j2.version>
<log4j2.disruptor.version>3.2.0</log4j2.disruptor.version>
<slf4j.version>1.7.13</slf4j.version><!--4.log日志相关依赖--><!-- log4j2日志相关依赖 -->
<!-- log配置:Log4j2 + Slf4j -->
<!-- slf4j核心包-->
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version>
</dependency>
<dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId><version>${slf4j.version}</version><scope>runtime</scope>
</dependency><!--核心log4j2jar包-->
<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>${log4j2.version}</version>
</dependency>
<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>${log4j2.version}</version>
</dependency>
<!--用于与slf4j保持桥接-->
<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>${log4j2.version}</version>
</dependency>
<!--web工程需要包含log4j-web,非web工程不需要-->
<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-web</artifactId><version>${log4j2.version}</version><scope>runtime</scope>
</dependency><!--需要使用log4j2的AsyncLogger需要包含disruptor-->
<dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId><version>${log4j2.disruptor.version}</version>
</dependency>

2.1 基础类型传参,可以接收String以及八大数据类型

 @RequestMapping("/demo01")public String index(String bname,Integer bid){log.info("基础传参:bname:{},bid:{}",bname,bid);return "index";}

2.2  复杂类型传参

   @RequestMapping("/demo02")public String demo02(Book book, HttpServletRequest request){
//      servlet原生参数获取方式log.info("复杂类型传参:bname:{},bid:{}",request.getParameter("bname"),request.getParameter("bid"));
//        复杂类型传参log.info("复杂类型传参:book:{}",book.toString());return "index";}

2.3  @RequestParam注解传参

@RequestMapping("/demo03")public String demo03(@RequestParam String bname,@RequestParam(required = false) Integer bid){log.info("@RequestParam传参:bname:{},bid:{}",bname,bid);return "index";}

 注意:这里bname的注解没有设置required值,则默认为true,是必填项,否则会报404错误。

2.4  @PathVariable注解传参

@RequestMapping("/demo04/{bid}")public String demo04(@PathVariable Integer bid){log.info("@PathVariable传参:bid:{}",bid);return "index";}

2.5 @RequestBody注解传参

使用@RequestBody注解传参时,需要先导入pom依赖

<jackson.version>2.9.3</jackson.version><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>${jackson.version}</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>${jackson.version}</version></dependency>
@RequestMapping("/demo05")public String demo05(@RequestBody Map map){log.info("@RequestBody传参:map:{}",map);return "index";}

注意:要接收json数据,前提要导入Jackson依赖,没有导入Jackson依赖的话进不了这个方法 

 使用postman或者apipost/eolink等工具发送请求数据。

 2.6 @RequestHeader注解传参

 @RequestMapping("/demo06")public String demo06(@RequestHeader("jwt") String jwt){log.info("@RequestHeader传参:jwt:{}",jwt);return "index";}

 @RequestMapping("/demo07")public String demo07(Book book, @RequestBody Map map, @RequestHeader("jwt") String jwt){log.info("book:book:{}",book.toString());log.info("@RequestBody:map:{}",map);log.info("@RequestHeader传参:jwt:{}",jwt);return "index";}

 三. 页面跳转

转发(forward:path)和重定向(redirect:path)这两种跳转方式将会绕开视图解析器的前缀后缀;还有就是如果是在同一controller中,则不用使用"/"从根目录开始,而如果是在不同的controller则一定要从根目录开始。

path为请求处理方法名,而非逻辑视图名。

  • 转发(地址栏不变)

@RequestMapping("/helloPage1")public String toHelloPage1(){log.info("helloPage1");return "forward:demo02";}

它相当于“request.getRequestDispatcher("url").forward(request,response)”。使用转发,既可以转发到jsp, 也可以转发到其他的控制器方法。

  • 重定向(地址栏改变)

@RequestMapping("/helloPage2")public String toHelloPage2(){log.info("helloPage2");return "redirect:demo02";}

它相当于“response.sendRedirect(url)”。需要注意的是,如果重定向到jsp页面,则jsp页面不能写在WEB-INF目录中,否则无法找到。

http://www.yayakq.cn/news/691464/

相关文章:

  • 企业网站网页设计的步骤怎样做模板网站
  • 网站qq交谈怎么做的扶余市建设局网站
  • 网站开发报价模版短视频软件开发
  • 专业的网站建设官网太原网站推广优化
  • 信息技术网站建设网络综合布线系统设计方案
  • 深圳招聘网站前十排名做网站会不会亏本
  • 空间商网站廊坊关键词优化报价
  • 六年级做的网站的软件wordpress 获取栏目名称
  • 城市建设模拟游戏官方网站wordpress dux1.3
  • 关于网站关停的申请中国建筑招投标平台
  • 网站原型设计广西建设网官网培训中心
  • 织梦网站源码转换成wordpresstradekey外贸平台官网
  • 沈阳网站建设兼职青岛当地的做公司网站的
  • 吉林省建设信息网站享学课堂 移动互联网开发
  • 中国住房和城乡建设部网站官网共享的网站备案
  • 网站建设公司转型专业做视频的网站有哪些
  • 网站常用的推广方法有哪些如何做试玩类网站
  • 深圳网站设计电子商务网站建设主管的策划案
  • 网站建设 大公司好网站制作交流论坛
  • 网站后台密码在哪里给几个网址谢谢
  • 济南会做网站的公司哪些公司做网站好
  • 网站开发网页设计北京师范大学出版社永兴县网站建设公司
  • 关于电子商务网站建设的参考文献网站建设业务前景
  • 网站建设三方协议设计必知的设计网站 039
  • 盐城网站开发基本流程自建wordpress 客户端
  • 自建社区网站网站所用的图片大小
  • 深圳网站设计兴田德润i简介qq是哪个开发运营公司的
  • swing做网站中国制造网 做网站费用
  • 网站建设需要注意的深圳市住房和建设局网站住房保障服务
  • 餐饮网站开发背景注册公司有几种类型