因为项目需要,需要从request中读取大量的参数。

因为本人过懒,所以写了个方法把request参数,直接放到对应的类中。

参数

String str="aa,bb,cc";

ParameterUtil util = new ParameterUtil();

XXX    model = util.getPara(request, str, XXX.class);

XXX  model类

下面是具体的实现类

public <T>T getPara(HttpServletRequest request,String para, Class<T> modelclass)  throws BusinessException{
        Field[] fields = modelclass.getDeclaredFields();
        List<Field> lst = new ArrayList<Field>();
        for(Field field : fields) {
            if(!Modifier.isStatic(field.getModifiers())){
                lst.add(field);
            }
        }
        String[] array = para.split(",");
        T o = null;
        try {
            o = modelclass.newInstance();

for(Field f:lst){
            PropertyDescriptor pd = new PropertyDescriptor(f.getName(), modelclass);
            Method w = pd.getWriteMethod();
                for(String single:array){
                    if(f.getName().toLowerCase().equals(single.replace("_", ""))){
                        String value = request.getParameter(single);
                        if(this.cpf !=null){
                            boolean isok = this.cpf.pro(single, value);
                            if(!isok){
                              new BusinessException(String.valueOf(ErrorCode.sys_008.getCode()));
                            }
                        }
                        if(f.getType() == Integer.class){
                        w.invoke(o,Integer.valueOf(value));
                        }else if(f.getType() == Long.class){
                            w.invoke(o,Long.valueOf(value));
                        }else if(f.getType() == Boolean.class){
                            w.invoke(o,Boolean.valueOf(value));
                        }else if(f.getType() == String.class){
                            w.invoke(o,value);
                        }
                    }
                    
                }
                
            }
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        return o;
        }

JAVA 如何把request请求的参数,快速放到model对象中的更多相关文章

  1. Java后端发出post请求带参数并接收返回的json

    核心代码: 参数格式: “key1=value1&key2=value2” /*** sendUrl    (远程请求的URL)* param    (远程请求参数)* JSONObject  ...

  2. java拦截器获取请求完整参数

    public class OptLogAspect implements HandlerInterceptor { @Override public boolean preHandle(HttpSer ...

  3. python中快速删除实例对象中的所有属性

    def DeleteObjectAllProperties(objectInstance): if not objectInstance: return listPro =[key for key i ...

  4. 怎样通过id属性快速从HTMLCollection对象中获取到目标元素节点

    方法1: 直接使用id或name属性: 比如我想获取 id 为 img1 的图片元素节点, 则可以这样写: document.images.img1 如果没有对应节点, 则返回undefined; 方 ...

  5. springMVC中 request请求数据绑定到Controller入参 过程剖析

    前言:Controller方法的参数类型可以是基本类型,也可以是封装后的普通Java类型.若这个普通Java类型没有声明任何注解,则意味着它的每一个属性都需要到Request中去查找对应的请求参数.众 ...

  6. 【Java EE 学习 69 上】【struts2】【paramsPrepareParamsStack拦截器栈解决model对象和属性赋值冲突问题】

    昨天有同学问我问题,他告诉我他的Action中的一个属性明明提供了get/set方法,但是在方法中却获取不到表单中传递过来的值.代码如下(简化后的代码) public class UserAction ...

  7. JAVA基础之sql模糊匹配、外键以及jsp中include的用法

    一.SQL模糊匹配 适用于对字符串进行模糊搜索 格式:   字段名 Like '%关键词%'      %          表示这个位置可有任意个字符(没有也可以) %关键词%  只要包含关键词就算 ...

  8. Java中request请求之 - 带文件上传的form表单

    常用系统开发中总免不了显示图片,保存一些文件资料等操作. 这些操作的背后,就是程序员最熟悉的 enctype="multipart/form-data"类型的表单. 说起file类 ...

  9. 【springmvc Request】 springmvc请求接收参数的几种方法

    通过@PathVariabl注解获取路径中传递参数 转载请注明出处:springmvc请求接收参数的几种方法 代码下载地址:http://www.zuida@ima@com/share/1751862 ...

随机推荐

  1. js : json和 cookie 的简单操作

    使用 cookie,可以记录用户的最近的浏览历史 <!DOCTYPE HTML> <html lang="zh-cn"> <head> < ...

  2. 绝对炫的3D幻灯片-SLICEBOX

    绝对炫的3D幻灯片-SLICEBOX http://www.jq22.com/jquery-info31

  3. 急训 Day 1 (2)

    Mushroom的区间[题目描述]Mushroom有一行数,初始时全部是0.现在Mushroom有m个区间[L,R],他希望用以下操作得到新的序列.从m个给定区间中选择一个区间[s,t],把区间中的数 ...

  4. JAVA 1.1

    1. JASE : J2SE 这个就是我们现在在学的东西,他是一切Java的核心基础 JAME :J2ME : 他是Java的一个微型版,主要用来做移动开发 JAEE :J2EE Java企业版本,主 ...

  5. Jmeter 学习(三)

    1. 线程组知识 1)Ramp-up period 表示多长时间内建立全部的线程数N 默认为0,表示测试开始即建立全部线程并立即发送访问请求 设置为Ts,表示每隔T/N建立一个线程 注1:一般不设置为 ...

  6. bootstrap-table填坑之旅<一>认识bootstrap-table

    应公司需求,改版公司ERP的数据显示样式.由于前期开发的样式是bootstrap,所以选bootstrap-table理所当然(也是因为看了bootstrap-table官网的example功能强大, ...

  7. IT关键词,发现与更新,点成线,线成面,面成体

    时序图 1.什么是时序图 2.如何看懂时序图 3.时序图的作用 4.如何绘制时序图 分布式 一个业务分拆多个子业务,部署在不同的服务器上. 分布式是指将不同的业务分布在不同的地方. 而集群指的是将几台 ...

  8. vs2012配置OpenGL

    1.下载glut包: http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip 2.将下载的压缩包解压,得到5个文件,如下: ...

  9. MySQL DCL 整理

    DCL(Data Control Language)数据库控制语言  授权,角色控制等GRANT 授权REVOKE 取消授权

  10. lua实现私有函数

    本文是原创文章,如需转载,请注明文章出处 要用lua实现私有函数,关键就是使用metatable的特性来实现. Test.lua: local v = {};v.x = 100;v.y = 200; ...