• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

liutaoryutou

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

JAVA 如何把request请求的参数,快速放到model对象中

因为项目需要,需要从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;
        }

 

 

posted on 2013-10-11 14:49  liutaoryutou  阅读(3455)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3