基于SpringMVC中的路径参数和URL参数实例

1、SpringMVC中的路径参数就是指在路径中添加参数,用于实现伪静态是很好的。

2、路径参数实现方式(一个Controller方法)

@RequestMapping(value="/page/{name}/{age}",method=RequestMethod.GET)
public String getName(ModelMap map,@PathVariable("name") String name,@PathVariable("age") int age)
{
  map.addAttribute("name",name);
  map.addAttribute("age",age);
  return "name";
}

3、创建name.jsp文件

<%@page pageEncoding="UTF-8"%>
<html>
<head>
  <meta charset="UTF-8">
  <title>test</title>
</head>
<body>
<div>
  名字:${name}<br/>
  年龄:${age}
</div>
</body>
</html>

4、在浏览器请求这个controller

http://localhost:8080/page/xiaoming/18

需要注意的是,我这里使用的编辑器是IDEA旗舰版

5、在controller中接受请求参数的实现(controller)

@RequestMapping(value="/result",method=RequestMethod.GET)
public String resultParam(ModelMap map,@RequestParam String name,@RequestParam int age)
{
  map.addAttribute("name",name);
  map.addAttribute("age",age);
  return "result";
}

6、创建result.jsp文件

<%@page pageEncoding="UTF-8">
<html>
<head>
  <meta charset="UTF-8">
  <title>测试</title>
</head>
<body>
名字:${name}<br/>
年龄:${age}
</body>
</html>

6、在浏览器中请求这个controller

http://localhost:8080/result?name=xiaoming&age=20

补充:spring mvc 之可选路径参数

在spring mvc中,注解@PathVariable可以获得路径参数,但如果我想让路径参数可选呢?

  @GetMapping({"/get/{offset}/{count}","/get/{offset}","/get/{offset}","/get"})
  public void getGoods(@PathVariable(required = false) Integer offset,@PathVariable(required = false) Integer count){
    System.out.println("offset:"+offset+"\ncount:"+count+"\n");
  }

此时在这个例子中,offset和count都是可选的了,但是count存在时offset必须存在。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

时间: 2021-02-23

为spring get请求添加自定义的参数处理操作(如下划线转驼峰)

1.生成自己的注解(为了确定在哪些位置使用) /** * 关闭patch delete的model处理,否则会报错 */ @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface AliasProcessor { } /** * 处理Get 请求参数的驼峰问题 * @author lw */ @Target(ElementType.FIELD) @Retentio

Spring MVC的参数绑定和返回值问题

一:参数绑定 参数绑定过程 在springMVC中,从前端(页面:jsp-)发送请求到后端(controller-),会包含一些数据,数据是如何到达Controller,这个过程就是参数绑定过程 1.默认支持的类型 SpringMVC有支持的默认的参数类型,在方法上给出默认的参数类型的声明就可以直接使用 HttpServletRequest request:通过request对象来获取请求的信息 HttpServletResponse response:通过response来处理响应信息 Htt

详解Spring Boot Web项目之参数绑定

一.@RequestParam 这个注解用来绑定单个请求数据,既可以是url中的参数,也可以是表单提交的参数和上传的文件 它有三个属性,value用于设置参数名,defaultValue用于对参数设置默认值,required为true时,如果参数为空,会报错 好,下面展示具体例子: 首先是vm: <h1>param1:${param1}</h1> <h1>param2:${param2}</h1> 好吧,就为了展示两个参数 第一种情况: @RequestMa

详解spring boot rest例子

简介:本文将帮助您使用 Spring Boot 创建简单的 REST 服务. 你将学习 什么是 REST 服务? 如何使用 Spring Initializr 引导创建 Rest 服务应用程序? 如何创建获取 REST 服务以检索学生注册的课程? 如何为学生注册课程创建 Post REST 服务? 如何利用 postman 执行 rest 服务? 本教程使用的 rest 服务 在本教程中,我们将使用适当的 URI 和 HTTP 方法创建三个服务: @GetMapping("/ students

实例详解Spring Boot实战之Redis缓存登录验证码

本章简单介绍redis的配置及使用方法,本文示例代码在前面代码的基础上进行修改添加,实现了使用redis进行缓存验证码,以及校验验证码的过程. 1.添加依赖库(添加redis库,以及第三方的验证码库) <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency&

详解spring boot starter redis配置文件

spring-boot-starter-Redis主要是通过配置RedisConnectionFactory中的相关参数去实现连接redis service. RedisConnectionFactory是一个接口,有如下4个具体的实现类,我们通常使用的是JedisConnectionFactory. 在spring boot的配置文件中redis的基本配置如下: # Redis服务器地址 spring.redis.host=192.168.0.58 # Redis服务器连接端口 spring.

详解spring boot jpa整合QueryDSL来简化复杂操作

前言 使用过spring data jpa的同学,都很清楚,对于复杂的sql查询,处理起来还是比较复杂的,而本文中的QueryDSL就是用来简化JPA操作的. Querydsl定义了一种常用的静态类型语法,用于在持久域模型数据之上进行查询.JDO和JPA是Querydsl的主要集成技术.本文旨在介绍如何使用Querydsl与JPA组合使用.JPA的Querydsl是JPQL和Criteria查询的替代方法.QueryDSL仅仅是一个通用的查询框架,专注于通过Java API构建类型安全的SQL查

详解Spring boot Admin 使用eureka监控服务

前言 最近刚好有空,来学习一下如何搭建spring boot admin环境.其中遇到很多的坑. 网上大多都是使用admin-url的方式直接来监控的,感觉一点也不灵活,这不是我想要的结果,所以本篇介绍借助eureka服务注册和发现功能来灵活监控程序. 本文主要记录spring boot admin的搭建过程,希望能有所帮助.其实非常的简单,不要被使用常规方式的误导! 环境介绍 IDE:intellij idea jdk: java8 maven:3.3.9 spring boot:1.5.6

详解Spring Boot中使用Flyway来管理数据库版本

如果没有读过上面内容的读者,有兴趣的可以一阅.在上面的使用JdbcTemplate一文中,主要通过spring提供的JdbcTemplate实现对用户表的增删改查操作.在实现这个例子的时候,我们事先在MySQL中创建了用户表.创建表的过程我们在实际开发系统的时候会经常使用,但是一直有一个问题存在,由于一个系统的程序版本通过git得到了很好的版本控制,而数据库结构并没有,即使我们通过Git进行了语句的版本化,那么在各个环境的数据库中如何做好版本管理呢?下面我们就通过本文来学习一下在Spring B

详解Spring Boot整合Mybatis实现 Druid多数据源配置

一.多数据源的应用场景 目前,业界流行的数据操作框架是 Mybatis,那 Druid 是什么呢? Druid 是 Java 的数据库连接池组件.Druid 能够提供强大的监控和扩展功能.比如可以监控 SQL ,在监控业务可以查询慢查询 SQL 列表等.Druid 核心主要包括三部分: 1. DruidDriver 代理 Driver,能够提供基于 Filter-Chain 模式的插件体系. 2. DruidDataSource 高效可管理的数据库连接池 3. SQLParser 当业务数据量达

详解Spring Boot 属性配置和使用

spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置. Spring Boot 支持多种外部配置方式 这些方式优先级如下: 命令行参数 来自java:comp/env的JNDI属性 Java系统属性(System.getProperties()) 操作系统环境变量 RandomValuePropertySource配置的random.*属性值 jar包外部的application-{profile}.propert

详解Spring Boot微服务如何集成fescar解决分布式事务问题

什么是fescar? 关于fescar的详细介绍,请参阅fescar wiki. 传统的2PC提交协议,会持有一个全局性的锁,所有局部事务预提交成功后一起提交,或有一个局部事务预提交失败后一起回滚,最后释放全局锁.锁持有的时间较长,会对并发造成较大的影响,死锁的风险也较高. fescar的创新之处在于,每个局部事务执行完立即提交,释放本地锁:它会去解析你代码中的sql,从数据库中获得事务提交前的事务资源即数据,存放到undo_log中,全局事务协调器在回滚的时候直接使用undo_log中的数据覆