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;
}
JAVA 如何把request请求的参数,快速放到model对象中的更多相关文章
- Java后端发出post请求带参数并接收返回的json
核心代码: 参数格式: “key1=value1&key2=value2” /*** sendUrl (远程请求的URL)* param (远程请求参数)* JSONObject ...
- java拦截器获取请求完整参数
public class OptLogAspect implements HandlerInterceptor { @Override public boolean preHandle(HttpSer ...
- python中快速删除实例对象中的所有属性
def DeleteObjectAllProperties(objectInstance): if not objectInstance: return listPro =[key for key i ...
- 怎样通过id属性快速从HTMLCollection对象中获取到目标元素节点
方法1: 直接使用id或name属性: 比如我想获取 id 为 img1 的图片元素节点, 则可以这样写: document.images.img1 如果没有对应节点, 则返回undefined; 方 ...
- springMVC中 request请求数据绑定到Controller入参 过程剖析
前言:Controller方法的参数类型可以是基本类型,也可以是封装后的普通Java类型.若这个普通Java类型没有声明任何注解,则意味着它的每一个属性都需要到Request中去查找对应的请求参数.众 ...
- 【Java EE 学习 69 上】【struts2】【paramsPrepareParamsStack拦截器栈解决model对象和属性赋值冲突问题】
昨天有同学问我问题,他告诉我他的Action中的一个属性明明提供了get/set方法,但是在方法中却获取不到表单中传递过来的值.代码如下(简化后的代码) public class UserAction ...
- JAVA基础之sql模糊匹配、外键以及jsp中include的用法
一.SQL模糊匹配 适用于对字符串进行模糊搜索 格式: 字段名 Like '%关键词%' % 表示这个位置可有任意个字符(没有也可以) %关键词% 只要包含关键词就算 ...
- Java中request请求之 - 带文件上传的form表单
常用系统开发中总免不了显示图片,保存一些文件资料等操作. 这些操作的背后,就是程序员最熟悉的 enctype="multipart/form-data"类型的表单. 说起file类 ...
- 【springmvc Request】 springmvc请求接收参数的几种方法
通过@PathVariabl注解获取路径中传递参数 转载请注明出处:springmvc请求接收参数的几种方法 代码下载地址:http://www.zuida@ima@com/share/1751862 ...
随机推荐
- Latex图片显示问题(1)
用latex编译后,若用dvipdf生成pdf文件,则其中有个eps图的左侧会显示不完全:若是用dvips--pspdf生成pdf文件,图像显示没问题. 这种情况的问题出在,加载 graphicx 宏 ...
- Git初步学习
版本控制系统version control system 多人协作开发 历史记录 恢复到任意历史版本-代码状态 错误恢复 多功能并行开发 版本控制系统分类: 本地版本控制系统---------个人计算 ...
- python pyqt4 ide eric安装
注意事项 关于python,pyqt的版本 笔者安装的是eric,原来电脑安装的是64位的python,32位的pyqt4,导致系统找不到pyqt,后来更换python版本为32搞定,猜测pyqt的版 ...
- SublimeText配置NodeJS代码提示
IDE选择 最近开始研究node.js.在网上资料显示使用WebStorm开发好像是最理想的选择,但由于其需要收费.笔者选择使用Sublime Text开发.至于破解方法网络有一大堆资料,笔者此处就略 ...
- 程序设计入门——C语言 第6周编程练习 2 完数(5分)
2 完数(5分) 题目内容: 一个正整数的因子是所有可以整除它的正整数.而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数.例如6=1+2+3(6的因子是1,2,3). 现在,你要写一个程序, ...
- 后台接收URL地址的参数
其实很简单,只是写一下加强记忆 后台接收URL传递过来的参数有两种方法: 第一种用request接收 HttpServletRequest request = ServletActionContext ...
- 附加类型的实体失败,因为相同类型的其他实体已具有相同的主键值。在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值
var list= DAL.LoadEntities(x => x.OrderCode == orderCode).AsNoTracking().ToList().FirstOrDefault( ...
- 打开hibernate文件报警告
在web工程中新建一个,Hibetnate项目,打开配置文件报警高错误,This project is not a MyEclipse Hiberbate Project. Assuming Hibe ...
- Snoopy+phpquery采集demo
用phpquery类,写了个采集的demo,以 某网贷平台的 一个列表为例,我们要采集该平台下面的 各平台名称,结构树如下 include 'phpQuery.php'; phpQuery::newD ...
- HTML5离线缓存
参考文档:http://www.w3cschool.cc/html/html5-app-cache.html HTML5 应用程序缓存 又称离线缓存 ,即使断线了,刷新后也还是缓存了原来的页面,不会4 ...