`

将查询关键字加上颜色

阅读更多
package com.wzg.lore.util;

import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * @author 文正光
 * @version 创建时间:Apr 12, 2011 1:30:35 PM 类说明 查询时给查询内容的关键字加上指定的颜色
 */
public class DecoratorSingleKeyword {

/**
* 给一个对象中的属性值中包含的一个关键字加上需要的颜色
* @param object
* @param keyword
* @param color
* @return
* @throws Exception
*/
public static Object handlerObject(Object object, String keyword,
String color) {
Class objClass = object.getClass();
Field[] fields = objClass.getDeclaredFields();
Field field = null;
PropertyDescriptor pd = null;
if (keyword != null && keyword.trim().length() != 0) {
for (int i = 0; i < fields.length; i++) {
field = fields[i];
if (!field.getName().equals("serialVersionUID")) {
try {
pd = new PropertyDescriptor(field.getName(), objClass);
String s = pd.getReadMethod().invoke(object,
new Object[] {}).toString();// 得到getXXX的值
// 对属性中包含的关键字加上指定的颜色
s = s.replaceAll(keyword, "<font color=\"" + color
+ "\">" + keyword + "</font>");
ConvertDataType.invorkMethod(field, object, pd
.getWriteMethod(), s);// 调用set方法重新赋值
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (IntrospectionException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
return object;
}

/**
* 给一个容器中的每个对象的属性值中包含的一个关键字加上指定的颜色
* @param collection
* @param keyword
* @param color
* @return
*/
public static List handlerList(List list, String keyword, String color) {
List resultList = new ArrayList();
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object object = iterator.next();
resultList.add(handlerObject(object, keyword, color));
}
return resultList;
}

}









package com.wzg.lore.util;

import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * @author 文正光
 * @version 创建时间:Apr 13, 2011 12:12:43 AM 类说明
 */
public class DecoratorMultipleKeywords {

/**
* 给一个对象中的属性值中包含的多个关键字加上需要的颜色
* @param object
* @param color
* @param keywords
* @return
*/
public static Object handlerObject(Object object, String color,
String... keywords) {
Class objClass = object.getClass();
Field[] fields = objClass.getDeclaredFields();
Field field = null;
PropertyDescriptor pd = null;
for (String keyword : keywords) {
if (keyword != null && keyword.trim().length() != 0) {
for (int i = 0; i < fields.length; i++) {
field = fields[i];
if (!field.getName().equals("serialVersionUID")) {
try {
pd = new PropertyDescriptor(field.getName(),
objClass);
String s = pd.getReadMethod().invoke(object,
new Object[] {}).toString();// 得到getXXX的值
// 对属性中包含的关键字加上指定的颜色
s = s.replaceAll(keyword, "<font color=\"" + color
+ "\">" + keyword + "</font>");
ConvertDataType.invorkMethod(field, object, pd
.getWriteMethod(), s);// 调用set方法重新赋值
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (IntrospectionException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
}
return object;
}

/**
* 给一个容器中的每个对象的属性值中包含的多个关键字加上指定的颜色
* @param list
* @param color
* @param keywords
* @return
*/
public static List handlerList(List list, String color, String... keywords) {
List resultList = new ArrayList();
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object object = iterator.next();
resultList.add(handlerObject(object, color, keywords));
}
return resultList;
}
}








package com.wzg.lore.util;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.util.Date;

public class ConvertDataType {

/**
* 对Date类型转换
* @param args
* @return
*/
public static Date toDate(String args) {
Date result = null;
if (null == args || "".equals(args))
result = null;
else
try {
result = DateFormat.getInstance().parse(args);
} catch (Exception e) {
result = null;
}
return result;
}

/**
* 对Timestamp类型转换
* @param args
* @return
*/
public static Timestamp toTimestamp(String args) {
Timestamp result = null;
if (null == args || "".equals(args))
result = null;
else
try {
result = Timestamp.valueOf(args);
} catch (Exception e) {
result = null;
}

return result;
}

/**
* 对Long类型转换
* @param args
* @return
*/
public static Long toLong(String args) {
Long result = null;
if (null == args || "".equals(args))
result = new Long(0);
else
try {
result = Long.parseLong(args);
} catch (Exception e) {
result = new Long(0);
}

return result;
}

/**
* 对Double类型转换
* @param args
* @return
*/
public static Double toDouble(String args) {
Double result = null;
if (null == args || "".equals(args))
result = new Double(0);
else
try {
result = Double.parseDouble(args);
} catch (Exception e) {
result = new Double(0);
}

return result;
}

/**
* 对Float类型转换
* @param args
* @return
*/
public static Float toFloat(String args) {
Float result = null;
if (null == args || "".equals(args))
result = new Float(0);
else
try {
result = Float.parseFloat(args);
} catch (Exception e) {
result = new Float(0);
}

return result;
}

/**
* 对Integer类型转换
* @param args
* @return
*/
public static Integer toInteger(String args) {
Integer result = null;
if (null == args || "".equals(args))
result = 0;
else {
try {
result = Integer.parseInt(args);
} catch (Exception e) {
result = 0;
}
}
return result;
}

/**
* 对Short类型转换
* @param args
* @return
*/
public static Short toShort(String args) {
Short result = null;
if (null == args || "".equals(args))
result = 0;
else {
try {
result = Short.parseShort(args);
} catch (Exception e) {
result = 0;
}
}
return result;
}

/**
* 重写了对String类型的转换
* @param args
* @return
*/
public static String toString(String args) {
String result = null;
if (null == args || "".equals(args))
result = "";
else
result = args.toString();
return result;
}
/**
* 根据字段的数据类型执行相应的set方法
* @param field
* @param object
* @param method
* @param value
* @throws IllegalArgumentException
* @throws IllegalAccessException
* @throws InvocationTargetException
*/
public static void invorkMethod(Field field, Object object, Method method,
String value) throws IllegalArgumentException,
IllegalAccessException, InvocationTargetException {
if (field.getType() == String.class) { // 处理当为String类型情况
method.invoke(object, new Object[] { toString(value) });
} else if (field.getType() == Integer.class) {// 处理当为Integer类型情况
method.invoke(object, new Object[] { toInteger(value) });
} else if (field.getType() == Float.class) {// 处理当为Float类型情况
method.invoke(object, new Object[] { toFloat(value) });
} else if (field.getType() == Double.class) {// 处理当为Double类型情况
method.invoke(object, new Object[] { toDouble(value) });
} else if (field.getType() == Long.class) {// 处理当为Long类型情况
method.invoke(object, new Object[] { toLong(value) });
} else if (field.getType() == int.class) {// 处理当为int类型情况
method.invoke(object, new Object[] { toInteger(value) });
} else if (field.getType() == float.class) {// 处理当为float类型情况
method.invoke(object, new Object[] { toFloat(value) });
} else if (field.getType() == double.class) {// 处理当为double类型情况
method.invoke(object, new Object[] { toDouble(value) });
} else if (field.getType() == Date.class) {// 处理当为Date类型情况
method.invoke(object, new Object[] { toTimestamp(value) });
} else if (field.getType() == short.class) {// 处理当为Short类型情况
method.invoke(object, new Object[] { toShort(value) });
} else if (field.getType() == Timestamp.class) {// 处理当为Timestamp类型情况
method.invoke(object, new Object[] { toTimestamp(value) });
}
}
}



分享到:
评论

相关推荐

    javascript关键字加亮加连接

    我想在页面里把想要的关键词加亮凸出(用颜色区分出来)显示,这样让客户一眼能看到重的东西,然后在加亮的关键词上可以加上超连接.请问高手们怎么实现宋的功能.就像搜索引擎的那种..搜索关键词的时候就显示红色的.

    c++builder memo控件与listbox控件 加入 背景图片 c语言 关键字变色 自绘滚动条

    众里寻她千百度也没结果,现在应该差不多了,终于花了2、3天时间,给memo控件与listbox控件加上了背景图片,并自绘了他们的滚动条、光标、所选内容,同时,在memo中输入c++语言关键字,如int,char等,会自动变颜色。...

    万能数据库查询分析器《DB 查询分析器》 1.0

    3、提供了对所有数据库包括Oracle、Sybase、DB2、Informix、MySql、MS SQL SERVER、Access、FoxPro的SQL语句进行词法分析,对关键字、函数等显示以不同的颜色,使用户更方便地发现输入SQL语句的错误,同时...

    超漂亮的网上购物系统 2012 v1.0 正式版

    如果产品介绍包含该关键字,会自动加上设置的链接 16)新闻介绍关键字内链功能:后台可以设置关键字和对应的链接 如果新闻内容包含该关键字,会自动加上设置的链接 17)后台搜索引擎优化管理收集了常见搜索引擎的...

    ASP网上购物系统旗舰版

    如果产品介绍包含该关键字,会自动加上设置的链接 16)新闻介绍关键字内链功能:后台可以设置关键字和对应的链接 如果新闻内容包含该关键字,会自动加上设置的链接 17)后台搜索引擎优化管理收集了常见搜索引擎的...

    环平网上购物系统2012 V1.0版

    如果产品介绍包含该关键字,会自动加上设置的链接 16)新闻介绍关键字内链功能:后台可以设置关键字和对应的链接 如果新闻内容包含该关键字,会自动加上设置的链接 17)后台搜索引擎优化管理收集了常见搜索引擎的...

    基于C++设计语法高亮

    本项目旨在用C++实现用文件操作来改变 HTML 中内容HTML 关联 CSS 来实现语法高亮。在所需高亮的关键字或字符串前后加上 class 标签,在 CSS 定义颜色。

    CSS中的两个特殊值用于控制层叠的inherit和initial的方法

    在CSS中有两个特殊值可以赋给任意属性,用于控制层叠:inherit和initial。...通常我们会给网页的所有链接加上一个字体颜色(如果不加的话,就会以用户代理样式为准)。这个颜色也会作用于页脚的“Term

    仿京东商城购物系统正式版

    如果新闻内容包含该关键字,会自动加上设置的链接 17)后台搜索引擎优化管理收集了常见搜索引擎的登录地址,方便网站管理员提交网站 七、 促销功能模块 1)优惠券功能:客户下单时输入优惠券号码和密码可以从...

    简述CSS中的背景属性background

    它的值可以是任意合法的颜色值或者是transparent关键字。   .left { background-color: #ffdb3a; } .middle { background-color: #67b3dd; } .right { background-color: transparent; }  背景颜色绘制

    通用服装商城系统 v3.3.rar

    1.网站SEO设置,可设置每个页面关键字,方便蜘蛛抓取。 2.新增支付接口(财付通接口,支付宝接口,快钱接口)。 3.新增库存管理,可添加具体尺码。   后台是您的网址后面加上 /sy 管理员帐号:admin 密码:...

    金色通用商城系统 v3.3.rar

    1.网站SEO设置,可设置每个页面关键字,方便蜘蛛抓取。 2.新增支付接口(财付通接口,支付宝接口,快钱接口)。 3.新增库存管理,可添加具体尺码。   后台是您的网址后面加上 /sy 管理员帐号:admin 密码:...

    EXCEL函数公式集

    通过条件格式将小计和总计的行设为不同的颜色 如何实现这样的条件格式 隔行不同字体颜色怎么设置 让不同类型数据用不同颜色显示 如何做这样的EXCEL表(颜色交叉) 条件格式 使用条件格式设置颜色条纹 相同数据的提示...

    Excel公式大全操作应用实例(史上最全)

    通过条件格式将小计和总计的行设为不同的颜色 如何实现这样的条件格式 隔行不同字体颜色怎么设置 让不同类型数据用不同颜色显示 如何做这样的EXCEL表(颜色交叉) 条件格式 使用条件格式设置颜色条纹 相同数据的提示...

    (精校版)计算机应用基础第EXCEl作业操作题.doc

    (2)数据排序:以"分部门"为主关键字,分别以"性别"、"籍贯"为第二、第三关键字 以递增方式排序,结果保存在工作表"排序2"中。 (3)数据筛选:筛选出1月销售大于85万元且"2月"销售大于80万元,或者筛选出女 生且1...

    AYANcms网站管理程序 1.0.rar

    2、添加信息:信息标题内容和属性(SEO标题、置顶、推荐、滚动、标题颜色等等)关键词和描述标签,详情请见AYANcms信息发布说明 3、管理信息:对已发布的信息进行编辑修改、转移或删除 4、评论管理:对信息内页...

    Toad 使用快速入门

    3. 自动用不同颜色显示SQL和PL/SQL关键字,语法清晰明了,可根据自己的习惯来具体定制各类关键字的具体显示方式。可以自定义存储过程得模板,在新建存储过程的时候,自动生成程序的框架可以方便的调用Schema ...

    Wordpress 博客主题/模板 阿里百秀XIU主题 2.1最新版CMS高级主题

    首页关键字和描述:设置你自己的很重要,更有利于SEO 网站底部信息:你可以增加网站底部显示信息,比如:网站地图 侧栏随动:每种页面可设置不同的侧栏随动模块,首页、分类/标签/搜索页、文章页、页面可以不一样 更...

    dreamweaver网站PHP开发MXP插件

    高亮显示搜索的关键字.mxp 格式化文本插件(维持段落不丢).mxp 根据背景控制表格尺寸插件.mxp 根据不同客户端加载不同CSS文件插件.mxp 固定层插件(二).mxp 固定层插件(一).mxp 关闭弹出窗口插件.mxp 滚动条效果...

Global site tag (gtag.js) - Google Analytics