来源 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]+"); 就可以了。