`
zhengpingling
  • 浏览: 13089 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

ActionFormUtil

阅读更多
package com.lxit.company.util;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import org.apache.log4j.Logger;

import com.lxit.company.action.GoodsAction;

public class ActionFormUtil {
private Logger logger = Logger.getLogger(GoodsAction.class);
private static ActionFormUtil instance = null;

public ActionFormUtil() {

}

public static synchronized ActionFormUtil getInstance() {
if (null == instance) {
instance = new ActionFormUtil();
}
return instance;
}
/**
*
* 〈得到ActionForm节点〉
* @param [actionFormKey]     [key值]
* @return  [Object]
* @Author Erin
*/
public Object getActionForm(String actionFormKey) {
logger.debug(StringUtil.append("getActionForm", Common.BEGIN));
ConfigUtil configUtil = new ConfigUtil();
// action节点对应的form名
String form = configUtil.getActionFormName(actionFormKey);

// ActionForm类路径
String actionForm = configUtil.getActionFormValue(form);

Object object = null;
try {
object = Class.forName(actionForm).newInstance();
} catch (InstantiationException e) {
logger.error(StringUtil.append("getActionForm", e.getMessage()));
} catch (IllegalAccessException e) {
logger.error(StringUtil.append("getActionForm", e.getMessage()));
} catch (ClassNotFoundException e) {
logger.error(StringUtil.append("getActionForm", e.getMessage()));
}
logger.debug(StringUtil.append("getActionForm", Common.END));
return object;
}

/**
*
* 〈map集合到object映射〉
*
* @param [map] [Map集合]
* @param [object] [Object对象]
* @return [Object]
* @Author Erin
*/
public Object mapToObject(Map map, Object object) {
logger.debug(StringUtil.append("mapToObject", Common.BEGIN));
// 表单key集合
Set keySet = map.keySet();
// 对象map集合
Map fieldsMap = getFields(object);
// 遍历key集合
for (Object object2 : keySet) {
// 判断表单map集合是否包含字段
if (fieldsMap.containsKey(object2)) {
Method[] methods = object.getClass().getMethods();
for (Method method : methods) {
// 方法名
String name = method.getName();
// 判断值匹配
if (name.startsWith("set")
&& object2.equals(name.substring(3, 4)
.toLowerCase() + name.substring(4))) {
try {
// 返回数组
String[] str = (String[]) map.get(object2);
// 对象赋值
method.invoke(object, str[0]);
} catch (IllegalArgumentException e) {
logger.error(StringUtil.append("mapToObject", e.getMessage()));
} catch (IllegalAccessException e) {
logger.error(StringUtil.append("mapToObject", e.getMessage()));
} catch (InvocationTargetException e) {
logger.error(StringUtil.append("mapToObject", e.getMessage()));
}
}
}
}
}
logger.debug(StringUtil.append("mapToObject", Common.END));
return object;
}
/**
*
* 〈得到map集合的字段〉
* @param [object]     [Object的对象]
* @return  [Map]
* @Author Erin */
public Map getFields(Object object) {
logger.debug(StringUtil.append("getFields", Common.BEGIN));
Map map = new HashMap();
Method[] methods = object.getClass().getMethods();
for (Method method : methods) {
String name = method.getName();
if (name.startsWith("set")) {
String field = name.substring(3, 4).toLowerCase()
+ name.substring(4);
map.put(field, null);
}
}
logger.debug(StringUtil.append("getFields", Common.END));
return map;

}
}
分享到:
评论

相关推荐

    ActionForm

    2. `ActionFormUtil.java`: 这可能是一个通用的ActionForm辅助类,提供了一些对ActionForm操作的静态方法,比如验证表单数据、填充默认值或进行数据转换等。 3. `config.xml`: 这是一个配置文件,很可能包含了Struts...

    同邦软件.txt

    同邦软件

    【精美排版】单片机电子秒表设计Proteus.docx

    单片机

    文艺高逼格21.pptx

    文艺风格ppt模板文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板

    DEP-620HP系列电能质量监测装置使用说明书(v1[1].0)最新.doc

    说明书

    uboot代码详细分析.pdf

    uboot代码详细分析

    base.apk (2).1

    base.apk (2).1

    DCP动力锥贯入仪说明书.docx

    说明书

    wx269计算机实验室排课与查询系统-ssm+vue+uniapp.zip(可运行源码+sql文件+文档)

    本基于微信小程序的计算机实验室排课与查询系统管理员功能有个人中心,学生管理,教师管理,实验室信息管理,实验室预约管理,取消预约管理,实验课程管理,实验报告管理,报修信息管理,系统管理等。其他用户可以对实验室进行预约。因而具有一定的实用性。 本站后台采用Java的SSM框架进行后台管理开发,可以在浏览器上登录进行后台数据方面的管理,MySQL作为本地数据库,微信小程序用到了微信开发者工具,充分保证系统的稳定性。 管理员可以管理学生信息,可以对学生信息修改删除。管理员可以对教师信息进行查询修改,删除操作。系统管理员可以对实验室信息进行增删查改操作。系统管理员可以对实验室预约信息进行审核操作。系统管理员可以对轮播图信息进行添加修改删除操作。 小程序用户是需要注册才可以进行登录的,登录后在首页可以查看相关信息,并且下面导航可以点击到其他功能模块。在小程序里点击我的,会出现关于我的界面,在这里可以修改个人信息,以及可以点击其他功能模块。用户可以进行实验室预约。

    测试用,测试附件的上传与下载

    #include "stdio.h" int main() { printf("Hello World."); return 0; }

    使用hadoop进行数据分析教程说明,流程特点文档

    使用hadoop进行数据分析 使用 Hadoop 进行数据分析通常涉及以下流程和特点: ### 流程说明 1. **数据准备**: - **数据收集**:从各种数据源收集数据,可以是结构化数据(如数据库中的数据)、半结构化数据(如日志文件)或非结构化数据(如文本、图像)。 - **数据清洗**:清理和预处理数据,包括处理缺失值、异常值,以及格式化数据以适应后续处理。 2. **数据存储**: - 使用 Hadoop 的 HDFS(Hadoop Distributed File System)存储原始数据或经过预处理的数据。 3. **数据处理**: - **MapReduce 任务**:使用 Hadoop 的 MapReduce 编程模型编写任务,将数据分成小块,分发给集群中的多个节点并行处理。 - **数据分析算法**:根据任务需求选择合适的数据分析算法,如统计分析、机器学习算法等。 4. **结果存储**: - 将处理后的数据或分析结果存储回 HDFS 中,或者存储到其他适合的数据存储系统中,如 HBase(NoSQL 数据库)或 H

    电信CS-TY2-2wcn,移动和家亲CS-MY2-2why,刷CS-CP1-1C2WFR可解

    电信CS-TY2-2wcn,移动和家亲CS-MY2-2why,刷CS-CP1-1C2WFR可解

    C++语言课程设计说明书.doc

    C++语言课程设计说明书

    杜欣芮1111.doc

    杜欣芮1111.doc

    决策树.py

    python代码,适合新手小白

    推荐系统开发指南,包括协同过滤推荐系统示例

    推荐系统开发指南,包括协同过滤推荐系统示例

    SQL-Server-2008-数据库还原到SQL-Server-2012.docx

    数据库

    中科大软件学院科软考试回忆

    在科软选过的课,没加学弟学妹的群,就放在这里留给有缘人了

    INTEL超频IOS简单设置新手篇.doc

    ios

    npcap-1.71-网络数据包抓包工具

    Npcap是一款用于Windows操作系统的数据包捕获和网络分析的软件库和网络驱动程序。Npcap是WinPcap的最新改进版,旨在采用Microsoft Light-Weight Filter (NDIS 6 LWF)技术和Windows Filtering Platform (NDIS 6 WFP)技术,以提供比原有WinPcap工具包更好的抓包性能和稳定性。它由Nmap网络扫描器项目创始人Gordon Lyon和北京大学罗杨博士于2013年发起,并由Google公司的Summer of Code计划赞助的一个开源项目。Npcap基于WinPcap 4.1.3源码开发,支持32位和64位架构,在Windows Vista以上版本的系统中,采用NDIS 6技术的Npcap能够获得更好的抓包性能和稳定性。 Npcap的主要功能包括: 提供数据包捕获功能,允许开发人员和网络分析师直接访问网络上的原始数据包。 支持网络分析,使得网络应用程序能够更深入地理解和分析网络流量。 此外,Npcap还包含一个驱动程序来支持数据包捕获,它是libpcap库的Windows版本,为开发者提供了一个统一的

Global site tag (gtag.js) - Google Analytics