zoukankan      html  css  js  c++  java
  • SpringMVC传入多个对象

    最近遇到一个问题,一个添加接口,需要添加三个对象,而且这三个对象里面的属性名很多都是一样的。

    本来是拿三个对象直接接收值,但是因为很多属性名都一样,所以接收不到值。

    百度也有的说把这三个对象的参数重命名然后整成一个对象传过来,但是相对于实体类里相同参数偏多的话,就很麻烦。

    最后解决办法如下:

     例如:

    具体方法如下:

    借助fastjson工具类

    package com.infohold.city.map.util;
    
    import java.util.Map;
    
    import com.alibaba.fastjson.JSON;
    
    public class JsonXMLUtils {
    	public static String obj2json(Object obj) throws Exception {
            return JSON.toJSONString(obj);
        }
    
        public static <T> T json2obj(String jsonStr, Class<T> clazz) throws Exception {
            return JSON.parseObject(jsonStr, clazz);
        }
    
        public static <T> Map<String, Object> json2map(String jsonStr) throws Exception {
                return JSON.parseObject(jsonStr, Map.class);
        }
      
        public static <T> T map2obj(Map<?, ?> map, Class<T> clazz) throws Exception {
            return JSON.parseObject(JSON.toJSONString(map), clazz);
        }
    }
    

    接下来controller层传值

    /**
    	 * 
    	 * 企业自查隐患--添加+修改
    	 */
    	@RequestMapping(value = "insertcompanycheckhidden", method = {RequestMethod.POST,RequestMethod.GET})
    	@ResponseBody
    	public RestResponse<Object> insertCompanyCheckHidden(@RequestBody Map<String, Object> models){
    		return wrap(companyCheckHiddenService.insertCompanyCheckHidden(models));
    	}
    

    service代码如下

    @Override
    	public Object insertCompanyCheckHidden(Map<String, Object> models) {
    		CompanyCheckHidden companyCheckhidden = null;
    		HiddenCheckCompanyItem hiddenCheckCompanyitem = null;
    		CompanyCheckHiddenScale companyCheckHiddenscale = null;
    		try {
    			companyCheckhidden = JsonXMLUtils.map2obj((Map<String, Object>)models.get("companyCheckhidden"),CompanyCheckHidden.class);
    			hiddenCheckCompanyitem=JsonXMLUtils.map2obj((Map<String, Object>)models.get("hiddenCheckCompanyitem"),HiddenCheckCompanyItem.class); 
    			companyCheckHiddenscale=JsonXMLUtils.map2obj((Map<String, Object>)models.get("companyCheckHiddenscale"),CompanyCheckHiddenScale.class); 
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		//其他逻辑。。。。。。。。。
    		return xxx;
    	}
    

    postman测试该添加接口:

    {
    	"companyCheckhidden": {
    		"id": "1",
    		"name": "张三"
    	},
    	"hiddenCheckCompanyitem": {
    		"id": "2",
    		"name":"李四"
    	},
    	"companyCheckHiddenscale": {
    		"id": "3",
    		"name":"王五"
    	}
    	
    }
    
  • 相关阅读:
    HDU 2196 Computer
    HDU 1520 Anniversary party
    POJ 1217 FOUR QUARTERS
    POJ 2184 Cow Exhibition
    HDU 2639 Bone Collector II
    POJ 3181 Dollar Dayz
    POJ 1787 Charlie's Change
    POJ 2063 Investment
    HDU 1114 Piggy-Bank
    Lca hdu 2874 Connections between cities
  • 原文地址:https://www.cnblogs.com/supiaopiao/p/8534317.html
Copyright © 2011-2022 走看看