zoukankan      html  css  js  c++  java
  • 测试开发进阶——spring boot——MVC——get访问——通过URL传递参数

    通过URL传递参数与上面的URL不同,上面的URL中均需写明参数名和对应参数值,这里的URL传递参数,仅需要在地址栏输入参数值,然后后台自动匹配到对应的参数名。

    springMVC通过使用处理器映射和@PathVariable注解的组合来获取URL参数。

    首先通过处理器映射可以定位参数的位置和名称,而@PathVariable则可以通过名称来获取参数。

    package com.awaimai.web;
    
    import org.springframework.web.bind.annotation.*;
    
    import java.util.HashMap;
    import java.util.Map;
    
    @RestController
    public class kzq
    {
    
        @RequestMapping("/param/geturl/{name}/{age}/{score}")
        @ResponseBody
        public Map<String, Object> getUrlParam(
                @PathVariable("name") String name,
                @PathVariable("age") Integer age,
                @PathVariable("score") Double score) {
            Map<String, Object> paramMap = new HashMap<String, Object>();
            paramMap.put("name", name);
            paramMap.put("age", age);
            paramMap.put("score", score);
            return paramMap;
        }
    
    }
    

    方法中,我们使用了3个{ },分别代表变量name、age和score,方法变量中使用@PathVariable来接收变量,并映射为方法的变量

    =====================================================================================================

    如果中间某个参数可能为空呢,查了下@PathVariable注解有required属性,但是经测试,发现这个属性无法单独使用。

    如果中间某个参数为空,还得借用@RequestMapping 支持多URL的属性进行处理

    假如,age属性可能为空,那么修改代码为

    package com.awaimai.web;
    
    import org.springframework.web.bind.annotation.*;
    
    import java.util.HashMap;
    import java.util.Map;
    
    @RestController
    public class kzq
    {
    
        @RequestMapping(value = {"/param/geturl/{name}/{age}/{score}",
                "/param/geturl/{name}/{score}"})
        @ResponseBody
        public Map<String, Object> getUrlParam(
                @PathVariable("name") String name,
                @PathVariable(value = "age", required = false) Integer age,
                @PathVariable("score") Double score)
    
        {
            Map<String, Object> paramMap = new HashMap<String, Object>();
            paramMap.put("name", name);
            paramMap.put("age", age);
            paramMap.put("score", score);
            return paramMap;
        }
    
    }
    

      

    其中,后面的URL中没有了age参数,这里,视有无age的请求为不同的请求

    使用URL http://localhost:8080/param/geturl/zhangsan//89 做测试,可以正常跳转

    web访问:

  • 相关阅读:
    在中文SPS中去掉左上角的“帮助”
    如何将英文SPS站点迁移到中文SPS下?
    Pivot View问题???
    PostgreSQL
    一个简单的全选Jquery插件
    JavaScript 分页控件的实现
    EXTJS新的创建方式
    通用垂直居中方法兼容各浏览器改进
    对Excel中的工作表进行排序的VBA(备份一下)
    关于meta标签(力求“大全”)
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/15084981.html
Copyright © 2011-2022 走看看