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 ...
随机推荐
- 月薪3万的程序员告诉你:这样工作才能拿高薪(转 IT之家)
习惯即刻回报 他不懂得只有春天播种,秋天才会有收获.刚刚付出一点点,甚至还没有付出,就想要得到回报.技术刚刚掌握,能一边百度一边干活了就觉得该拿到多少多少钱了.找工作先想着多少多少钱,入职了没干几个月 ...
- 2014最后一天,好烦!这个问题从来没遇到过!网上查找了很多办法都没解决!并且no wifi 了!
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was alread ...
- vmware 三种网络模式
Bridged方式:vm相当于局域网内的一台独立主机.可以通过局域网的网关访问互联网.vm和宿主机的关系就像连接在同一个hub的两个电脑. NAT方式(网络地址转换模式):vm可以上外网,可以访问宿主 ...
- js获取当前日期时间格式为“yyyy-MM-dd HH:MM:SS”
废话不多说,直接上代码! <!DOCTYPE html><html><head> <meta charset="utf-8"> ...
- 老王讲自制RPC框架.(一.前言与技术选型)
(#)背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时,只 ...
- tcp 之失败重传机制
1.回退N步协议: 滑动窗口模式,每次传送一批的数据,接收到一个就再放进去一个,如果前面一个没有收到回复,后面的就算收到了后面的数据也丢掉 2选择性重传 区别是收到后,缓存.
- struts 标签的使用<转>
Struts2常用标签总结 一 介绍 1.Struts2的作用 Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性.实现了更好的 ...
- Android 三大图片加载框架的对比——ImageLoader,Picasso,Glide
一.ImageLaoder介绍 << Universal ImageLoader 是很早开源的图片缓存,在早期被很多应用使用 多线程下载图片,图片可以来源于网络,文件系统,项目文件夹ass ...
- ie8兼容性(不支持trim 、readonly光标、乱码encodeURI())
IE8下String的Trim()方法失效的解决方案 1.用jquery的trim()方法,$.trim(str)就可以了. 2.String扩展: 第一种 String.prototype.trim ...
- VPN安装后报错:Reason442 & Error56
VPN安装后一直报错,同样的32位安装包别人安装是正常,自己安装就不正常了,考虑到是自己电脑配置的问题. 经过一番努力,解决了问题,下面就本次解决过程做一个小小的总结. (1)确保VPN Servic ...