个人博客 地址: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

JFinal获取多个model的更多相关文章

  1. 获取Django中model字段名 字段的verbose_name

    obj._meta.fields 为关键 obj为model类 推荐使用函数 from django.apps import apps def getmodelfield(appname,modeln ...

  2. 页面间传递前端请求参数和获取参数:Model model,HttpServletRequest request, ModelMap map参数使用与区别

    Model model, HttpServletRequest request, ModelMap map声明变量 一.下面的方法是需要将请求发过来的数据(或者说参数)传递到重定向的页面/转发的页面的 ...

  3. el表达式无法获取springmvc的model封装好的数据之解决方法

    近日碰到奇怪的问题,应该挺好解决的,可是就是卡住我两天 下面我来描述一下问题 用的是springmvc,自然需要controller,假设我现在所有的配置都是对的. controller代码 @Req ...

  4. jfinal获取当前访问路径和端口号

    public void generateSingleLicense() throws Exception { System.out.println(getRequest().getRequestURL ...

  5. jfinal获取服务器的IP和端口

    String serverIp = getRequest().getServerName(); Integer serverPort = getRequest().getServerPort();

  6. asp.net mvc js 获取model值。

    cshtml页面部分代码: div class="col-sub">          @using (Html.BeginForm("SaveTTMallConf ...

  7. Thinkphp5.0 的使用模型Model的获取器与修改器

    Thinkphp5.0 的使用模型Model的获取器.修改器.软删除 一.获取器 在model中使用 get+字段名+Attr,可以修改字段的返回值. 数据库中性别保存为,0未知.1男.2女,查询时返 ...

  8. 初尝 JFinal 项目(一)

    temp1: JFinal项目与JAVA项目类似,有属性方法.操作方法.Sql语句操作.jdbc.配置文件 对比:|| JAVA: Bean / Srv(Server) / SqlMap / jdbc ...

  9. JFinal极速开发框架使用笔记

    记录第一次使用JFinal,从简单的框架搭建到增删改查,从自带的方法到正常框架习惯的使用方式. JFinal官网:http://www.jfinal.com/ JFinal 是基于 Java 语言的极 ...

随机推荐

  1. BOS只读状态修改

    update T_META_OBJECTTYPE set FSUPPLIERNAME ='PAEZ',FPACKAGEID =null

  2. SRAM结构框图解

    SRAM 即静态RAM.它也由晶体管组成,SRAM的高速和静态特性使它们通常被用来作为Cache存储器.计算机的主板上都有Cache插座. 下图所示的是一个SRAM的结构框图. 由上图看出SRAM一般 ...

  3. 笔记-Git基础

    git配置 git config --global user.name "xxx" //配置用户名 git config --global user.email "xxx ...

  4. Mac 下如何判断 WIFI 的极限传输速度还有信号强度?

    每当你加入一个无线网络后,按住Option键并点击屏幕右上角的Wi-Fi图标,就会发现除了平常的各种网络外,还出现了关于网络连接技术细节的列表. 比如说,如果想知道信号强度的信息,则需要尤其关注列表中 ...

  5. 剑指offer-面试题60-n个骰子的点数-动态规划

    /* 题目: 计算n个骰子,出现和s的概率. */ #include<iostream> #include<cstdlib> #include<stack> #in ...

  6. Node.js核心模块-http

    通过node中的http模块可以创建编写服务器 引入 const http = require('http') http举例使用: const http = require('http') //引入 ...

  7. Apache Solr Velocity模板注入rce+获取交互式shell

    前言: 官方的poc.exp payload只能获取很低的命令执行权限,甚至有些符号.命令还被过滤了,例如管道符被过滤.并且不能写入.下载文件,不能使用管道符重定向文件.那么我们只能通过获取到交互式s ...

  8. python3.6安装PyUserInput

    python3.6安装PyUserInput https://www.cnblogs.com/yoyoketang/p/8043814.html

  9. PHP中根据二维数组中某个字段实现排序

    想要实现二维数组中根据某个字段排序,一般可以通过数组循环对比的方式实现.这里介绍一种更简单的方法,直接通过PHP函数实现.array_multisort() :可以用来一次对多个数组进行排序,或者根据 ...

  10. Dom中的一些接口

    节点都是单个对象,有时需要一种数据结构,能够容纳多个节点.DOM 提供两种节点集合,用于容纳多个节点:NodeList和HTMLCollection.这两种集合都属于接口规范.许多 DOM 属性和方法 ...