Action 参数转list的问题

在Action中, 如果参数是List<Bean> 类型。 

比如:public void save( List<User> users, String xxx);  

这时候, 从前端传入的users的数据, 无法直接转成User 类型的列表, 反而转成了 List<JsonObject> 类型的列表。 

示例如下:

前端传入的数据

{

"companyIdx": "02aaa893-fb0d-4854-93cc-3ce6450d0ecc",

"affixs": [{

"name": "qq",

"remark": "QWE",

"affix": "http://192.168.31.200:8080/upload/3eced6d9-096b-47c8-8659-6555ebc65987.xls"

}]

}

接收的controller方法中的方法

public void save(List<CompanyAffix> affixs, String companyIdx) {

renderjson(")

}

CompanyAffix 包含   :

name ,   remark  affix 属性

此时捕获到的affixs 的类型是  List<JSONObject> affixs  而不是  List<CompanyAffix> affixs


问题出在 BeanGetter 这个实现类中。  

@Override

public T get(Action action, Controller c) {

// 支持 json 数据请求注入 action 形参

if (ParaProcessor.resolveJson && c.isJsonRequest()) {

return resolveJson((JsonRequest)c.getRequest());

} else {

return c.getBean(beanClass, this.getParameterName(), true);

}

}

这是时候的this中的

parameterizedType Class<T> (com.sdtfsoft.modules.model.CompanyAffix) (id=174)

是带着转换类型, 建议在return c.getBean(beanClass, this.getParameterName(), true); 这里做进一步的类型判断处理。



评论区