class action extends mysql{_java Action 请求封装(二)
在Action初始化的时间引入ActionValues,并把ActionValues继承HashMap,ActionValues如果传递为对象会自动通过mysql拿到当前对象实体名称,然后根据实体的名称来当Key封装value值,如果没有参数默认是传递request,然后自动解析字符串存入map,并会过滤spring等一些配制文件的参数数据。
/**
* ActionValues数据封装
* @author zhouguohui
*/
public class ActionValues extends HashMap{
public ActionValues(){
super();
}
public ActionValues(Object obj){
String[] fieldNames=ModelUtils.getFieldNames(obj.getClass());
try{
for(String fieldName:fieldNames){
this.put(fieldName,BeanUtils.getProperty(obj, fieldName)==null?"":BeanUtils.getProperty(obj, fieldName));
}
}catch(Exception e){
e.printStackTrace();
}
}
public ActionValues(Map values){
this.putAll(values);
}
@SuppressWarnings("unchecked")
public ActionValues(HttpServletRequest request){
String name=null;
Enumeration paramNames=request.getParameterNames();
Enumeration attrNames=request.getAttributeNames();
while(paramNames.hasMoreElements()){
name=paramNames.nextElement();
if(name.startsWith("org.springframework")||name.equals("characterEncodingFilter.FILTERED")||name.equals("shiroFilter.FILTERED")||name.equals("roles.FILTERED")){//过滤spring参数
continue;
}
if(request.getParameterValues(name).length>1){
String[] values=request.getParameterValues(name);
for(String v:values){
if(StrUtils.isNotEmpty(v)){
put(name,v);
}
}
}else{
if(null!=request.getParameter(name)&&StrUtils.isNotEmpty(String.valueOf(request.getParameter(name)))){
put(name, request.getParameter(name));
}
}
}
while(attrNames.hasMoreElements()){
name=attrNames.nextElement();
if(name.startsWith("org.springframework")||name.equals("characterEncodingFilter.FILTERED")||name.equals("shiroFilter.FILTERED")||name.equals("roles.FILTERED")){//过滤spring参数
continue;
}
if(null!=request.getAttribute(name)){
put(name,request.getAttribute(name));
}
}
}
@Deprecated
public void addValues(Object obj){
String[] fieldNames=ModelUtils.getFieldNames(obj.getClass());
try{
for(String fieldName:fieldNames){
if(null!=BeanUtils.getProperty(obj, fieldName)&&!"".equals(BeanUtils.getProperty(obj, fieldName).trim())){
this.put(fieldName,BeanUtils.getProperty(obj, fieldName));
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
class action extends mysql{_java Action 请求封装(二)相关推荐
- axios请求封装(带拦截器)
请求封装二(带拦截器) //请求 import service from '../utils/requst' export function hlserver(){return new Promise ...
- html中的form action属性,HTML form action 属性
当提交表单时,发送表单数据到名为 "demo_form.html" 的文件(处理输入): First name: Last name: 菜鸟教程(runoob.com) First ...
- Struts2学习笔记 - Action篇定义逻辑Action
有三种方法可以使一个Action处理多个请求 动态方法调用DMI 定义逻辑Acton 在配置文件中使用通配符 这文章就谈论一下定义逻辑Action 这里主要关注的是struts.xml配置文件,一般情 ...
- PHP Request请求封装
/*** Request请求封装* Class Request* @package tool*/ class Request {// curl 请求错误码protected static $list_ ...
- action对象 java_struts2通过action返回json对象
其实struts2通过action返回json挺简单的,但是就是老要忘,所以索性写在博客上.好的,开始. 首先是引入必须的jar包: struts2-json-plugin-2.3.24.jar 然后 ...
- 【 微信小程序请求封装】【进阶版】处理401请求token过期--重新登录--重新发起刚才过期的请求
微信小程序请求封装(拦截器):处理请求过期–重新登录–重新发起刚才过期的请求 env.js //这里使用的接口呢都是自己模拟的,可以根据自己的需求进行添加module.exports={//开发环境的 ...
- 小程序仿 axios 请求封装
一.新建request.js /** 功能:小程序仿 axios 的请求封装*/ export default class Request {// 配置项configure = {baseURL: ' ...
- uni-app 请求封装
uni-app 请求封装 请求封装 // 默认配置 const instanceConfig = {baseURL: '',header: {'content-type': 'application/ ...
- ios 请求失败封装_vue_axios请求封装、异常拦截统一处理
1.前端网络请求封装.异常统一处理 vue中采用axios处理网络请求,避免请求接口重复代码,以及各种网络情况造成的异常情况的判断,采用axios请求封装和异常拦截操作: axios 请求封装 // ...
最新文章
- Visual Studio c++必要的背景知识--链接与编译
- 刚开始学centos和Oracle
- lucene 学习一
- 服务器远程显示用户忙,服务器远程显示用户忙
- ASP.NET中的随机密码生成
- 运维大数据可视化分析平台来了,枯燥运维数据也可以生动起来
- Nginx配置proxy_pass
- linux中的运行模式,Linux系统运行模式介绍
- 信息学奥赛一本通(1075:药房管理)
- 学校中有老师和学生两类人,而在职研究生既是老师又是学生,对学生的管理和对教师的管理在他们身上都有体现。...
- APScheduler——定时任务框架
- 2019PMP项目管理考试报名时间取证流程-真题模拟题
- 多张图片合成一张jpg工具_如何将两张图片合成一张图片?
- 【STM32】开发板学习1 NUCLEO-L476RG:GPIO例程 点亮LED2灯
- 【Matlab】三维绘图总结
- 分形造型的常用模型,C构造简单的IFS图形
- JS/SQL MVC框架介绍
- Social Justice Awards秋季赛正式启动
- WEB漏洞-文件上传之后端黑白名单绕过
- eclipse html乱码
热门文章
- 赛道一双周冠军分享:我不是TFboy,所以新写了baseline
- python函数递归求和详解_Python 递归函数详解及实例
- linux下scrapy安装教程,linux centos7安装scrapy
- C++将double类型小数以16进制格式打印出
- Leetcode每日一题:28.implement-strstr(实现strStr())
- Java-Collection、List
- sift计算描述子代码详解_浅谈SIFT特征描述子
- cordova build android很慢,cordova build --release android命令打包下载gradle非常慢的问题...
- [Ext JS]3.2.3 下拉选项框 Combobox
- [设计模式-行为型]责任链模式(Chain of Responsibility)