使用@PathVariable注解如何实现动态传值

目录
  • @PathVariable注解实现动态传值
  • 动态参数使用@PathVariable解析

@PathVariable注解实现动态传值

动态传值

@RequestMapping(value="/Test/{id}")
public void Test(@PathVariable Integer id){
            .............
}

用法

在页面表单的action中,写controller中对应的方法名

TestController.java
@RequestMapping(value="/{methodName}")
public String TZ(@PathVariable String methodName){
              return methodName;
}

动态参数使用@PathVariable解析

现在有如下的一条超链接

<a href="<c:url value=" rel="external nofollow" /actions/article/readArticle/${article.id}"/> "
target="_blank">${article.title}</a>

这条超链接的特点就是在URL路径中添加了EL表达式解析出来的id值。

因此,在SpringMVC的Controller层中,需要解析它,使用@PathVariable("articleId") Long articleId 来解析。

@PathVariable是专门用来解析URL请求中的动态参数。

在Controller层的代码如下

public static final String URL_ARTICLE_READ = "article/readArticle/{articleId}";
    /**
     * 去文章详情页面
     * 根据URL路径中指定的文章ID号,去获取制定文章的内容
     *
     * @param articleId 指定的文章的ID号
     * @return          获取此文章的数据,并去文章详情页面
     */
    @RequestMapping(value = {URL_ARTICLE_READ} )
    public ModelAndView readArticle(@PathVariable("articleId") Long articleId){
        LOGGER.info("enter article detail page, articleId = {}",articleId);
        final Article article = articleService.getArticleById(articleId);
 ...
    }

这样,页面上的${article.id}的值,就最终映射到了Java中的Long articleId 上了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 基于@PathVariable注解的用法说明

    带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义. 通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过 @PathVariable("xxx") 绑定到操作方法的入参中. 补充:@PathVariable接收两个参数 首先,@PathVariable无法接收对象,但是可以接收多个值 var data = obj.data;

  • @PathVariable注解,让spring支持参数带值功能的案例

    @PathVariable的作用 获取URL动态变量,例如 @RequestMapping("/users/{userid}") @ResponseBody public String getUser(@PathVariable String userid){ return "userid=" + userid; } @PathVariable的包引用 spring自从3.0版本就引入了org.springframework.web.bind.annotation.

  • 处理@PathVariable注解允许参数为空、允许不传参数的问题

    说明 设置可以不传: 但是请求的时候,仍然提示projectId必传: 这是因为url要求带参,属于REST参数. 解决办法 设置多个url path即可,有的传REST参,有的不传.当然required必须是false 这个问题以前解决过,--还是要温习一下比较好呀 补充:接收参数注解@PathVariable 与 @RequestParam与 不使用注解接收参数的情况 @RequestParam使用场景: @RequestParam: 顾名思义,获取请求参数的 @RequestParam的两

  • 使用AOP拦截Controller获取@PathVariable注解传入的参数

    目录 AOP拦截Controller获取@PathVariable注解传入参数 前言: 示例代码: 处理: 扩展: aop中获取request和response 动态参数使用@PathVariable解析 现在有如下的一条超链接 在Controller层的代码如下 AOP拦截Controller获取@PathVariable注解传入参数 前言: 最近项目中需要对controller传入的应用标识(appMarkId)进行校验,appMarkId@PathVariable传入到url模版中的,这里

  • 聊聊@RequestParam,@PathParam,@PathVariable等注解的区别

    @RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @PathVariable 是从一个URI模板里面来填充 @RequestParam 看下面一段代码: http://localhost:8080/springmvc/hello/101?param1=10&param2=20 根据上面的这个URL,你可以用这样的方式来进行获取 public Strin

  • 使用@PathVariable注解如何实现动态传值

    目录 @PathVariable注解实现动态传值 动态参数使用@PathVariable解析 @PathVariable注解实现动态传值 动态传值 @RequestMapping(value="/Test/{id}") public void Test(@PathVariable Integer id){ ............. } 用法 在页面表单的action中,写controller中对应的方法名 TestController.java @RequestMapping(val

  • SpringMVC实现RESTful风格:@PathVariable注解的使用方式

    目录 1.RESTful简介 2.SpringMVC实现RESTful风格 2.1 @PathVariable注解 2.2 修改SpringMVC的前端控制器配置 3.静态资源访问问题 3.1 解决方法一 3.2 解决方法二 4.综合实例 1.RESTful简介 RESTful为Representational State Transfer的缩写,中文释义为"表现层状态转换".RESTful不是一种标准,而是一种设计风格. RESTful本质上是一种分布式系统的应用层解决方案,它的主要

  • SpringBoot使用Mybatis注解实现分页动态sql开发教程

    目录 一.环境配置 二.Mybatis注解 三.方法参数读取 1.普通参数读取 2.对象参数读取 四.分页插件的使用 五.动态标签 六.完整示例 一.环境配置 1.引入mybatis依赖 compile( //SpringMVC 'org.springframework.boot:spring-boot-starter-web', "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.3", //Mybatis依赖及分页

  • vue父组件向子组件动态传值的两种方法

    在一些项目需求中需要父组件向子组件动态传值,比如我这里的需求是,父组件动态通过axios获取返回的图片url数组然后传给子组件,上传图片的子组件拿到该数组后进行遍历并展示图片 方法有两种, 方法一: props传值,这里注意一个问题,传过来的值需要用watch监听并赋值,否则这里获取到的是空数组   父组件: <uploadImg :width="200" :height="200" name="productImage" size=&qu

  • Vue 使用Props属性实现父子组件的动态传值详解

    如下所示: <!DOCTYPE html> <html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="https://cdn.jsdelivr.net/npm/vue&quo

  • mybatisplus @Select注解中拼写动态sql异常问题的解决

    目录 mybatisplus @Select注解中拼写动态sql异常 出现原因 解决方案 在注解上使用动态SQL(@select使用if) 用script标签包围 用Provider去实现SQL拼接 说明 mybatisplus @Select注解中拼写动态sql异常 使用mybatisplus后,手写SQL语句很少了,偶尔使用@Select时, 之前一直用实体类传递参数,完全能够正常使用,今天换成了参数传递,报下面的错误 @Select("<script>" +"

  • MyBatis在注解上使用动态SQL方式(@select使用if)

    目录 MyBatis在注解上使用动态SQL 1.用script标签包围 2.用Provider去实现SQL拼接 3.说明 MyBatis xml注释SQL的注意事项 注意事项 MyBatis在注解上使用动态SQL 1.用script标签包围 然后像xml语法一样书写 @Select({"<script>",                 "SELECT * FROM tbl_order",                 "WHERE 1=1

  • vue父子组件动态传值的几种方式及注意问题详解

    1.vue父组件向子组件动态传值的两种方法 在一些项目需求中需要父组件向子组件动态传值,比如我这里的需求是,父组件动态通过axios获取返回的图片url数组然后传给子组件,上传图片的子组件拿到该数组后进行遍历并展示图片,因为有时候获取到的会是空,所以这里要考虑到动态获取. 方法有两种, vue父组件向子组件动态传值方法一: props传值,这里注意一个问题,传过来的值需要用watch监听并赋值,否则这里获取到的是空数组 父组件: <uploadImg :width="200" :

随机推荐