JFinal获取多个model
个人博客 地址:http://www.wenhaofan.com/article/20180930112646
由于jfinal框架自身没有实现获取多个同一类型的Model的方法,导致获取ModelList的方式很不方便,解决方法很简单,新建BaseController 继承 Controller,在baseController中扩展一个获取ModelList的方法 ,在其他Controller中直接继承BaseController
代码如下
public <T> List<T> getModelList(Class<T> modelClass, String modelName,boolean skipConvertError) {
Pattern p = Pattern.compile(modelName + "\\[\\d+\\].[a-zA-z0-9]+");
Map<String, String[]> parasMap = getRequest().getParameterMap();
String paraKey=null;
String modelName2 = null;
List<T> resultList = new ArrayList<T>();
for (Entry<String, String[]> e : parasMap.entrySet()) {
paraKey = e.getKey();
if (p.matcher(paraKey).find()) {
modelName2 = paraKey.split("\\.")[0];
resultList.add(getModel(modelClass, modelName2, skipConvertError));
}
}
return resultList;
}接收参数格式为
modelName[0-n].attrName
例如
{
tag[0].name:"tets",
tag[0].sort:1,
tag[1].name:"tets",
tag[1].sort:1,
}
使用
List<Meta> tags=getModelList(Meta.class, "tag");
即可接收到长度为2的List

浙公网安备 33010602011771号