JFinal接收多个Model

来源 http://www.codeweblog.com/jfinal%E6%8E%A5%E6%94%B6%E5%A4%9A%E4%B8%AAmodel/

Controller增加如下方法,刚开始看JFinal,挺好的东西,准备在下个项目用了

页面写法 user[0....n].[attr]

代码有点乱,没整理

public <T> List<T> getModelList(Class<T> modelClass,String modelName){
        Pattern p = Pattern.compile(modelName + "\\[\\d\\].[a-zA-z0-9]+");       
         Map<String, String[]> parasMap = request.getParameterMap();       
         String paraKey;        
         Set<String> modelPrefix = new HashSet<String>();        
         for (Entry<String, String[]> e : parasMap.entrySet()) {
            paraKey = e.getKey();           
            if(p.matcher(paraKey).find()){
                modelPrefix.add(paraKey.split("\\.")[0]);
            }
        }
        List<T> resultList = new ArrayList<T>();        
        for (String modelName2 : modelPrefix) {
            resultList.add(getModel(modelClass,modelName2));
        } 
        return resultList;
    }
    
  
    
以上来自网上资料,本人在使用中发现一问题,当传入的  user[0....n].[attr] n>9时,数据就给丢了, 
解决办法:
Pattern p = Pattern.compile(modelName + "\\[\\d\\].[a-zA-z0-9]+");   
改成
Pattern p = Pattern.compile(modelName + "\\[\\d+\\].[a-zA-z0-9]+"); 
就可以了。


评论区

JFinal

2017-11-27 18:21

这个好多人需要,点赞、收藏

土慕木

2018-07-26 18:28

nbjgl

2019-10-02 18:25

@JFinal 为什么过去这么久了 还不加到新版本里面?

或是的话

2021-01-22 11:46

我目前处理是 前端 JSON.stringfy 后端 JSONArray.parseAarry

热门分享

扫码入社