精华内容
下载资源
问答
  • controller使用map接收参数注意事项

    千次阅读 2020-07-07 12:35:37
    #关于前端使用map接收参数的问题 @PostMapping("test01") @ResponseBody // 如果这里不加@RequestBody,那么springmvc默认创建的是BindAwareModelMap public Object test01( Map dataMap) { // 对象,并且都参数都...

    #关于前端使用map去接收参数的问题

    @PostMapping("test01")
    @ResponseBody                        // 如果这里不加@RequestBody,那么springmvc默认创建的是BindAwareModelMap
    public Object test01( Map dataMap) { // 对象,并且都参数都不会封装进去
        System.out.println(dataMap);
        dataMap = null;
        return new BindingAwareModelMap(); // 如果返回BindingAwareModelMap对象,就会抛出异常
    }
    

    #正确封装姿势

    @Controller
    @RequestMapping("map")
    public class MapController {
    
        @PostMapping("test01")
        @ResponseBody                                    // 如果加了@RequestBody,那么创建的是LinkedHashMap
        public Object test01(@RequestBody Map dataMap) { // 并且参数都封装了进去(url路径参数和json参数都会封装进去)
            System.out.println(dataMap);
            dataMap.put("msg", "ojbk");
            return dataMap;
        }
    
    }
    

    // 结论:如果使用map接收前端参数,那么一定要加@Requestbody才行

    #mybatis使用map封装参数,
    @Select("select * from t_product where pid = #{pid} or pname = #{pname}")
    List<Product> getByMap(Map map);
        
    #mybatisplus中有写好的方法
    List<T> selectByMap(@Param("cm") Map<String, Object> columnMap);
    
    #正确封装姿势2
    @Data
    public class Page {
        private Map dataMap = new HashMap(); // 这里可以不用初始化,加了@RequestBody,默认创建LinkdedHashMap
    }
    
    @Controller
    @RequestMapping("map")
    public class MapController {
    
        @PostMapping("test01")
        @ResponseBody
        public Object test01(@RequestBody Page page) { // 一定要加@RequestBody,否则封装不进去
            return page;
        }
    
    }
    前端需要使用json传参格式:
    {
        "dataMap":{
            "name":"zzhua"
        }
    }
    
    展开全文
  • 1.controller层 @PostMapping("/xksq/getGjclByCondition") public ResultInfo getGjclByCondition(@RequestBody Map<String,Object> params,HttpServletRequest request){ Map<String,Object> ...

    1.controller层

    @PostMapping("/xksq/getGjclByCondition")
    public ResultInfo getGjclByCondition(@RequestBody Map<String,Object> params,HttpServletRequest request){
        Map<String,Object> map = new HashMap<>();
        try {
            Integer iPageIndex = (Integer) params.get("iPageIndex");
            Integer iPageSize = (Integer) params.get("iPageSize");
            PageHelper.startPage(iPageIndex!=null?iPageIndex:1,iPageSize!=null?iPageSize:10);
            String username = JwtUtil.getUsername(request.getHeader("token"));
            Rfgcgl user = rfgcglMapper.selectOne(new QueryWrapper<Rfgcgl>().eq("YHMC", username));
            if(null==user){
                return ResultInfo.fail(903,"用户不存在");
            }
            params.put("qynbbh",user.getQyNbBh());
            List<Map<String, Object>> gjclByCondition = clxxQysqMapper.getGjclByCondition(params);
            PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(gjclByCondition);
            map.put("total",pageInfo.getTotal());
            map.put("datas",pageInfo);
            return ResultInfo.ok(map);
        }catch (Exception e){
            e.printStackTrace();
            return ResultInfo.fail(901, "列表条件查询失败");
        }
    }

    使用postman测试

    controller使用map接收参数时必须使用 @RequestBody接收参数,否则后台会出现接收不到的情况

    展开全文
  • 这次是为后台写一个条件查询的接口,我是使用了Map集合来接收多个查询条件,但是在使用swagger测试的时候,接口总是接收不到参数,无论是使用@RequestBody还是@RequestParam都不能接收map数据 后来发现不是这个...

    这次是为后台写一个条件查询的接口,我是使用了Map集合来接收多个查询条件,但是在使用swagger测试的时候,接口总是接收不到参数,无论是使用@RequestBody还是@RequestParam(用RequestParam注解可以获取传来的数据,但在使用map.get(“key”)方法获取想要的value时却总是null)都不能接收到map数据
    在这里插入图片描述
    后来发现不是这个地方的问题,而是这个方法的注解错误,因为这是查询,所以我理所当然的使用了@GetMapping
    在这里插入图片描述
    后来发现,只要把GetMapping改成PostMapping就可以了
    在这里插入图片描述

    展开全文
  • controller中用接Map集合接收参数

    万次阅读 2018-09-28 10:50:06
    controller中用Map&... map去接收参数,前台传来的是json字符串,后端如果需要的字段比较少的话,就不用去创建一个实体了,直接可以map去接收。map接收过来的字符串也是KV形式的,就是json形式。 ...

    在controller中用Map<String, String> map去接收参数,前台传来的是json字符串,后端如果需要用的字段比较少的话,就不用去创建一个实体了,直接可以用map去接收。map接收过来的字符串也是KV形式的,就是json形式。

    展开全文
  • 1.请求参数: 2.后台接收: @ResponseBody @PostMapping("userLogin") public AppResponse doLogin(@RequestBody(required = false) Map<String, String> params, HttpSession session) throws ...
  • SpringMVC controller用Map接收不确定参数

    万次阅读 2018-08-17 14:54:05
    @RequestMapping(value="/test",method={RequestMethod.POST,RequestMethod.GET}) @ResponseBody public String test(@RequestParam Map&...map前边要加上@RequestParam,参数才能自动进入到map中...
  • Map<String,Object> 前加@RequestParam
  • type: "post", dataType:'json', data: {"start":1,"limit":10}, @RequestPrameter Map<String, Object> params 上面分别是前台ajax和后台controller
  • springmvc 使用map接收参数

    千次阅读 2020-02-21 14:03:11
    为方便扩展接口功能, 在请求参数不改变的情况下兼容前端新增的入参的需求, 我们会考虑使用map接受参数. 这样无论前端加减参数, controller的入参是不需要变动的. 第一种情况: 请求参数有多组, 如:一组个人信息, 一...
  • 前端发送post请求,使用ajax发送json字符串,使用ajax以post方式发送json数据只能发送json字符串才能被控制器用Map接收,如果发送json对象,就会导致请求数据变成这样:), 这样的数据是没办法被SpringMVC解析的。...
  • springboot使用Map接收请求参数

    万次阅读 2019-12-02 09:58:41
  • 属性名[map的key],map的value ?params%5Bunids%5D=1%2C2
  • 结论:实体中与传递过来的参数(我这边是form表单提交)同名时会被正常的赋值;而所有参数不管是实体里的还是实体里面没有的,都会在map里面。 ...
  • 最后,说一下HttpServletRequest接收请求参数的方法,Controller代码如下所示,Controller接收到的参数值均为String类型: @RequestMapping(value="/request", method=RequestMethod.POST) @ResponseBody ...
  • spring mvc controller可以用Map接收jsp传来的值么???jsp怎么写,controller又怎么写??请求大神指教
  • spring-mvc中controller,前端传过来的参数,数组,列表,Map来接受参数的方式。 仅使用get方法来进行演示,其他请求方法(POST,DELETE,PUT)接受参数的形式都是一样的。 数组接受参数 import org.spring...
  • 地址传值 @PathVariable ...注解@RequestParam绑定请求参数到方法入参 当请求参数username不存在时会有异常发生,可以通过设置属性required=false解决,例如: @RequestParam(value=“username”, requi...
  • public class TestController { @GetMapping("/f1") public void func1(@RequestParam(required = false)Map map){ System.out.println(map); //{name=新一, age=22} } @GetMapping("/f2") pub
  • springMVC 接收map类型参数

    千次阅读 2019-01-23 11:21:25
    前台传递的参数: bean在前台通过字符串拼接成一个map类型的字符串,然后JSON.parse()   后台接口接收参数:  
  • 第一类:请求路径参数 1、无注解,形参名==前台参数名 @RequestMapping("login") public boolean login(String name, String password) { Map<String, String> map = new HashMap<>(); map.put...
  • Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是application/json,因此发送POST请求时需要设置请求报文头信息,否则Spring ...
  • SpringMVC之后台接收Map类型参数

    千次阅读 2019-03-07 18:45:41
    最近在做ssm时,使用spring mvc提供的封装参数的方法进行接收时...所以选择用Map接收 首先是前台的代码: 之后就不多举例了,下面代码中的json对象可以是form表单中的参数值,也可以是自己定义的。 //定义jso...
  • @RequestBody MultiValueMap,String>map 2.无注解 @PostMapping(path=“demo2”) public void demo2(Person person){  System.out.println(person.toString()) } 第三类 1、@RequestHeader 2、@...
  • springmvc在controller层使用map接收前端传过来的json数据时,必须使用@RequstBody才能自动接收参数不然无法接收参数
  • 背景 脱离传统项目,使用微服务集群开发后。...restful post请求提交的参数用什么接收? 关键字 Map、Entity 内容 1、首先,传统的接收使用HttpServletRequest同时支持get问好提交和form表单post提交,后台获取...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,379
精华内容 15,351
关键字:

controller用map接收参数