- 浏览: 65407 次
- 性别:
- 来自: 上海
最新评论
-
JavaTear2014:
Java轻量级Ioc容器,100%国人原创,真诚推荐
http ...
最轻量级IOC容器管理--beanbus -
aiyanbo:
achun 写道很酷,如果能和服务器通讯完成完备的shell就 ...
AiShell 0.0.1:linux命令模拟器 -
achun:
很酷,如果能和服务器通讯完成完备的shell就无敌了
AiShell 0.0.1:linux命令模拟器 -
kyfxbl:
果然是典型的学生说的话
阅读英文文档的感言 -
Javakeith:
用iterator也可吧!不过不能通过下标访问!
另类的方式访问Set集合中的元素
恩,本人很久没有写关于技术问题的文章了,因为本人水平不高,难写出出色的文章了,最近老师让我们做一个小型的oa系统,自己也写了两个工具类,拿来与大家分享下
有不足的地方望各位高手指正
WebHelp 主要用与Servlet中
Util 主要用于Dao中
下面是源代码:
package com.aiy.util; /** * @author aiyanbo */ import java.io.IOException; import java.io.PrintWriter; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashSet; import java.util.Set; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class WebHelp { public static final String DIR="WEB-INF/jsp/"; public static void alert(HttpServletResponse response,String content,String url){ try { PrintWriter out=response.getWriter(); out.print("<script>"); out.print("alert('"+content+"');"); out.print("location='"+url+"'"); out.print("</script>"); } catch (IOException e) { System.err.print("alert()方法中有错误"); e.printStackTrace(); } } public static void alert(HttpServletResponse response,String content){ try { PrintWriter out=response.getWriter(); out.print("<script>"); out.print("alert('"+content+"');"); out.print("</script>"); } catch (IOException e) { System.err.print("alert()方法中有错误"); e.printStackTrace(); } } //根据pojo类与request参数生成pojo对象 public static <T> T getObject(Class c,HttpServletRequest request) throws Exception{ T o=(T) c.newInstance(); Set<String> set=request.getParameterMap().keySet(); Field[] cfs=c.getDeclaredFields(); for (String str : set) { for (Field field : cfs) { if(str.equals(field.getName())){ setObject(c, request, o, str); break; } } } return o; } private static <T> void setObject(Class c, HttpServletRequest request, T o, String str) throws NoSuchFieldException, NoSuchMethodException, ParseException, IllegalAccessException, InvocationTargetException { Field f=c.getDeclaredField(str); String cname=f.getType().getSimpleName(); String fname=str.substring(0,1).toUpperCase()+str.substring(1); Method m=c.getDeclaredMethod("set"+fname, f.getType()); if(cname.equals("Date")){ SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd 00:00:00"); Date date=format.parse(request.getParameter(str)); m.invoke(o, date); }else if(cname.equals("int")){ int i=Integer.parseInt(bool(request.getParameter(str))); m.invoke(o, i); }else if(cname.equals("Long")){ Long l=Long.parseLong(bool(request.getParameter(str))); m.invoke(o, l); }else { m.invoke(o, request.getParameter(str)); } } private static String bool(String str){ return str.equals("1")?"1":"0"; } public static void forword(HttpServletRequest request,HttpServletResponse response,String url) throws ServletException, IOException{ request.getRequestDispatcher(url).forward(request, response); } public static int parseInt(HttpServletRequest request,String param,int def){ String istr=request.getParameter(param); return istr==null?def:Integer.parseInt(istr); } public static int parseInt(HttpServletRequest request,String param){ return WebHelp.parseInt(request, param, 0); } public static Long parseLong(HttpServletRequest request,String param,Long def){ String lstr=request.getParameter(param); return lstr==null?def:Long.parseLong(lstr); } public static Long parseLong(HttpServletRequest request,String param){ return parseLong(request,param,0L); } public static int[] parseIntArray(HttpServletRequest request,String param,String split){ String p=request.getParameter(param); return Util.parseIntArray(p, split); } public static String[] parseStringArray(HttpServletRequest request,String param,String split){ String p=request.getParameter(param); return Util.parseStringArray(p, split); } public static Long[] parseLongArray(HttpServletRequest request,String param,String split){ String p=request.getParameter(param); return Util.parseLongArray(p, split); } public static <T> Set<T> parseObjectSet(HttpServletRequest request,String param,String split,Class c,String idcolumn) throws Exception{ String p=request.getParameter(param); String[] arr=Util.parseStringArray(p, split); Set<T> set=new HashSet<T>(); String setname="set"+idcolumn.substring(0,1).toUpperCase()+idcolumn.substring(1); try { Method setter=c.getDeclaredMethod(setname, c.getDeclaredField(idcolumn).getType()); for (String str : arr) { T o=(T) c.newInstance(); setter.invoke(o, str); set.add(o); } } catch (Exception e) { System.err.println("parseObjectSet方法有错误,可能是您的参数类型不正确!"); e.printStackTrace(); throw e; } return set; } }
package com.aiy.util; /** * @author aiyanbo */ import java.lang.reflect.Field; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashSet; import java.util.Set; import net.sf.json.JsonConfig; public class Util { public static String toWhere(String column,String...arr){ StringBuffer sb=new StringBuffer(" where "+column+" in ("); for(String str : arr){ sb.append("'"+str+"'"+','); } sb.setCharAt(sb.length()-1, ')'); return sb.toString(); } //json的配置,转换中包含的字段 public static JsonConfig setIncludes(Class c,String...p){ JsonConfig config=new JsonConfig(); Set<String> set=null; if(p!=null){ Field[] fs=c.getDeclaredFields(); set=new HashSet<String>(); for (Field f : fs) { set.add(f.getName()); } for(String str : p){ set.remove(str); } } String[] str=new String[set.size()]; config.setExcludes(set.toArray(str)); return config; } public static String[] parseStringArray(String p,String split){ return p.split(split); } public static int[] parseIntArray(String p,String split){ String[] str=p.split(split); int[] arr=new int[str.length]; for (int i = 0; i < str.length; i++) { arr[i]=Integer.parseInt(str[i]); } return arr; } public static Long[] parseLongArray(String p,String split){ String[] str=p.split(split); Long[] arr=new Long[str.length]; for (int i = 0; i < str.length; i++) { arr[i]=Long.parseLong(str[i]); } return arr; } public static String dateToString(String fmt,Date date){ SimpleDateFormat format=new SimpleDateFormat(fmt); return format.format(date); } public static Date stringToDate(String fmt,String source){ SimpleDateFormat format=new SimpleDateFormat(fmt); try { return format.parse(source); } catch (ParseException e) { System.err.println("日期格式不正确"); e.printStackTrace(); return null; } } }
发表评论
-
最轻量级IOC容器管理--beanbus
2010-10-04 16:26 1955潜水已经有大半年 ... -
自定义标签实现国际化
2010-07-15 12:44 1718写了个世界上最简单的国际化的实现,,,主要是通过自定义标签 ... -
JTextArea 动态显示信息
2010-06-01 14:42 2597这几天刚刚学习Swing,写了个JTextArea动态显示信 ... -
二分查找
2010-05-13 10:01 1092用二分查找方法在一个已经排好序的数组中找出任意一个值的位置比遍 ... -
用递归分解因数
2010-04-24 22:19 1685有时候,我们需要对一个数字进行因数分解,我用递归帮我们做这件事 ... -
用SVN账号管理系统管理SVN账号
2010-04-05 00:15 4502本人独立开发出SVN账号管理系统,这套系 ... -
阅读英文文档的感言
2009-12-01 11:36 1589不知道大家有过这样的经历没有,当自己写代码写得非常流 ... -
json配置相关
2009-11-28 22:24 1365介于目前JsonConfig中没有setIncludes(.. ... -
原来你还在我的记忆里
2009-11-19 21:47 1023昨天晚上,发生了很奇怪的一件事情。 她在我的 ... -
牛仔式编程
2009-11-18 17:04 1307什么叫牛仔式编 ... -
超好玩的oop题目
2009-10-25 16:58 1196题目内容:在一个公寓里,小红是一个学生,另外还有一个建筑工人, ... -
用SerialNumber生成流水号
2009-09-28 20:23 10622在很多程序的应用中,有许多的地方会用到流水号,我写 ... -
另类的方式访问Set集合中的元素
2009-09-05 18:29 2788今天我的同学问了关于访问Set集合的元素问题, 由于Set是 ... -
家乡的青蛙
2009-08-27 23:18 1777请不要吃青蛙,青蛙是吃害虫的。 我生长在农村,小时候 ... -
程序员应该做的几件事
2009-08-24 21:22 11651.你要明白你在做什么 , 该做什么, 可以做什么, 你懂什 ... -
上溯造型与里氏替换原则
2009-08-23 09:09 1231在.net中的里氏替换原则在javaEE中称为上溯造型; ... -
浅谈while ; do-while ; for ; fro : ;
2009-08-12 20:29 1377while 适用于不定数循环 for 适用于定数循环,两者可 ... -
复合三元运算代替多重if-else结构
2009-08-08 21:59 1579String state=""; if( ... -
三元运算代替if - else结构
2009-08-07 14:35 1706String sex=""; if(nu ... -
int型自定义toString()
2009-08-05 23:45 1395如何将 1 转换成 0001 在C#中可以这样做: in ...
相关推荐
Webhelp开源项目是一款专为创建在线帮助和文档的工具,其设计目的是使内容创作者能够以高效且直观的方式生成专业级的文档。这个项目的核心亮点在于它的集成WYSIWYG(What You See Is What You Get)编辑器,允许用户...
1. 客户交互:WebHelp支持实时聊天功能,让客户可以在浏览网站时即时与客服人员沟通,解答问题或处理订单,减少了潜在客户的流失率。 2. 客户信息管理:系统能够存储和管理客户的基本信息、购买历史、沟通记录等,...
pop-webhelp PKSU 项目 2015 安装 确保你已经安装了pip 、 python2和redis 。 运行git clone https://github.com/christiankjaer/pop-webhelp 。 运行pip install -r requirements.txt 。 然后可以使用python ...
内有三个CHM格式的帮助文件,是开发人员必备的工具书,也是学习的好资料. DHTML 手册.chm dwusing.chm HTML.chm
语言:English,português (Brasil) 扩展以支持读取和网络浏览。 这是Webhelpdyslexia扩展的Beta版本,以帮助在阅读和网络浏览期间帮助患有诵读的人。扩展允许定制页面根据用户的需要,例如颜色,间距,类型和源大小...
这些资料可能包含技术指南、最佳实践、示例代码以及与网页开发相关的各种语言和框架的教程。通过这样的文档集合,开发者和用户可以快速查找所需信息,解决在使用Web应用过程中遇到的问题。 【标签】"help web"标签...
ensembl-prodinf-webhelp 该存储库包含Django admin可移植应用程序,用于编辑Ensembl Web帮助内容。 安装 克隆仓库 git clone cd ensembl-prodinf-webhelp 在您喜欢的虚拟环境中安装依赖项 pip install -r ...
总的来说,WordToHelp作为一款专业的文档转换工具,不仅简化了复杂的转换过程,更提供了多种格式选择,满足了不同场景下的文档管理与发布需求。无论你是个人用户还是企业,都可以借助WordToHelp轻松地实现文档的高效...
**eCommander SDK** 是一款专门针对开发人员设计的软件开发工具包,它提供了一整套功能丰富的API和文档,帮助开发者集成和扩展eCommander系统。eCommander是一款强大的文件管理和自动化工作流程解决方案,其SDK则...
Help & Manual Pro是一款非常专业、强大的帮助文件制作工具,采用纯XML格式的所见即所得编辑器,因此用起来跟通常的文字处理器没什么不同,支持CHM、PDF、RTF、EXE电子书等格式的输出。 Help & Manual采用Office ...
8. **持续集成与持续交付**:CI/CD流程中的测试角色,以及Jenkins、GitLab CI/CD等工具的使用。 9. **测试文档**:创建有效的测试计划、测试案例和测试报告的方法和最佳实践。 10. **软技能**:沟通技巧、问题解决...
WebHelp.CHM-->基本网页的建立、语法、构成。
Help & Manual Professional 内嵌了编辑器、截图、图形处理等工具。支持打印功能。可生成HTML、PDF、WEBHELP、APPLE IBOOKS、MICROSOFT WORD、MICROSOFT VISUL STUDIO HELP等文档。新增版本控制、生成QR码并插入等多...
Help & Manual Professional 内嵌了编辑器、截图、图形处理等工具。支持打印功能。可生成HTML、PDF、WEBHELP、APPLE IBOOKS、MICROSOFT WORD、MICROSOFT VISUL STUDIO HELP等文档。新增版本控制、生成QR码并插入等多...
Delphi是一种基于Object Pascal的高效、快速的开发工具,由Embarcadero Technologies公司维护和更新,它允许开发者构建高性能的Windows、macOS、iOS和Android应用程序。这本书和相关资源将帮助读者理解和掌握Delphi...
C语言作为一门基础且强大的编程语言,其标准库中的函数是开发者日常编程的重要工具。本文将深入探讨C函数库,包括其功能、使用方法以及常见问题,旨在帮助开发者更好地理解和应用这些函数。 一、C函数库概述 C函数...
然而,随着在线文档和现代帮助系统的兴起,如Markdown和WebHelp,HTMLHelp的重要性逐渐降低,但它仍然是某些应用场景下可靠和实用的帮助解决方案。 总的来说,"htmlhelp.zip"中的"htmlhelp.exe"可能是一个用于创建...
同时,开发者也需要了解如何使用蓝牙硬件抽象层(HAL)、开发工具包(SDK)以及相应的开发环境。 低功耗蓝牙BLE是蓝牙技术中的一个重要分支,它专为低功耗设计,适用于如可穿戴设备、健康监测设备等应用。BLE与传统...
Delphi教学软件是一款专为学习Delphi编程语言设计的实用工具。它包含了丰富的资源和教程,可以帮助初学者和有经验的开发者深入理解Delphi的各个方面。Delphi是一种基于Object Pascal的集成开发环境(IDE),由...
8. **网站抓取**:Python的Scrapy框架提供了高效的网络爬虫开发工具,帮助开发者构建复杂的网络数据抓取系统。 9. **正则表达式**:正则表达式是处理文本模式匹配的利器,Python的`re`模块提供了强大的正则操作功能...