- 浏览: 105180 次
- 性别:
- 来自: 合肥
文章分类
最新评论
-
safda1:
没明白为什么要把mac进行分段比较呢?
Java验证IP和MAC地址 -
yiqi1943:
原因是什么呢
MyBatis排序 -
sunlightcs:
在局域网外,获取不到mac地址吧。
Java获得登录的IP和MAC地址
说明:为了使用dhtmlx的Tree控件,动态生成所需的xml文件,通过一个父子关系的节点拼出来。
tag 标签(XMLForTreeTag.java)
tld文件(TldName.tld)
节点类(NodeDTO.java)
引用
只是为了参考
tag 标签(XMLForTreeTag.java)
import java.io.IOException; import java.lang.reflect.Method; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; import org.apache.commons.lang.StringUtils; /** * * @author gby */ public class XMLForTreeTag extends TagSupport { private Object rootNode; private String nodeIdProperty; private String nodeTypeProperty; private String nodeTitleProperty; private String childCollectionProperty; /** * * @return int * @throws JspException */ @Override public int doStartTag() throws JspException { StringBuffer sb = new StringBuffer(); try { sb = toHTML(rootNode, nodeIdProperty, nodeTitleProperty, nodeTypeProperty, childCollectionProperty); } catch (Exception ex) { Logger.getLogger(XMLForTreeTag.class.getName()).log(Level.SEVERE, null, ex); } JspWriter out = pageContext.getOut(); try { out.println(sb.toString()); } catch (IOException e) { e.printStackTrace(); } return SKIP_BODY; } /** * <tree id="0" > <item text="name1" id="id1"> <item text="name1-1" id="id1-1"> </item> </item> </tree> * @param rootNode * @param nodeIdProperty * @param nodeTitleProperty * @param nodeTypeProperty * @param childCollectionProperty * @return * @throws Exception */ public StringBuffer toHTML(Object rootNode, String nodeIdProperty, String nodeTitleProperty, String nodeTypeProperty, String childCollectionProperty) throws Exception { StringBuffer sb = new StringBuffer(); sb.append("<tree id=\"0\">\n"); String nodes = this.createXML(rootNode, nodeIdProperty, nodeTitleProperty, nodeTypeProperty, childCollectionProperty, sb); sb.append("</tree>\n"); return sb; } private String createXML(Object node, String nodeIdProperty, String nodeTitleProperty, String nodeTypeProperty, String childCollectionProperty, StringBuffer sb) throws Exception { Class<?> clazz = node.getClass(); //获得属性的get方法名。 String nodeIdMethodName = this.createMethodName(nodeIdProperty); String nodeTitleMethodName = this.createMethodName(nodeTitleProperty); String nodeTypeMethodName = this.createMethodName(nodeTypeProperty); String childCollectionMethodName = this.createMethodName(childCollectionProperty); //根据反射获得method Method nodeIdMethod = clazz.getMethod(nodeIdMethodName, new Class[0]); Method nodeTitleMethod = clazz.getMethod(nodeTitleMethodName, new Class[0]); Method nodeTypeMethod = clazz.getMethod(nodeTypeMethodName, new Class[0]); Method childCollectionMethod = clazz.getMethod(childCollectionMethodName, new Class[0]); if (node != null) { String nodeId = (String) nodeIdMethod.invoke(node, new Object[0]); String nodeTitle = (String) nodeTitleMethod.invoke(node, new Object[0]); String nodeType = (String) nodeTypeMethod.invoke(node, new Object[0]); String itemId = nodeId + "__" + nodeType; sb.append("<item text=\"").append(nodeTitle).append("\" ") .append(" id=\"").append(itemId).append("\">"); List children = (List) childCollectionMethod.invoke(node, new Object[0]); if (children != null && !children.isEmpty()) { for (Object child : children) { this.createXML(child, nodeIdProperty, nodeTitleProperty, nodeTypeProperty, childCollectionProperty, sb); } } sb.append("</item>\n"); } return sb.toString(); } private String createMethodName(String property) { if (StringUtils.isEmpty(property)) { return null; } String method = "get" + property.substring(0, 1).toUpperCase() + property.substring(1); return method; } getters().. setters().. }
tld文件(TldName.tld)
<?xml version="1.0" encoding="UTF-8"?> <!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by LEGO (LEGO) --> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <taglib> <tag> <name>xmlForTree</name> <tagclass>XMLForTreeTag</tagclass> <info>为显示多选树形拼的XML-dhtmlx</info> <attribute> <name>rootNode</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>nodeIdProperty</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>nodeTypeProperty</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>nodeTitleProperty</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>childCollectionProperty</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>
节点类(NodeDTO.java)
import java.io.Serializable; import java.util.List; /** * 树形显示DTO * @author gby */ public class NodeDTO implements Serializable{ /** * node的唯一标识 */ private String id; /** * node的唯一标识 */ private String parentId; /** * node的名称 */ private String name; /** * node的父节点 */ private NodeDTO parentDTO; /** * node的孩子节点 */ private List<NodeDTO> childrenDTO; //节点类型 private String nodeType; getters().. setters().. }
发表评论
-
glassfish--IOP00810011: Exception from readValue on ValueHandler in CDRInputStre
2012-10-09 10:05 2682问题日志信息描述: [#|2012-10-08T18:44:0 ... -
JDK linux 安装 install
2012-08-06 11:03 1349指导手册 1.说明:root是超级用户,test为普通用户 2 ... -
读取,修改jar文件
2012-07-16 14:48 2143读取,修改,操作,编辑,jar文件 文件选择 jarFileS ... -
Oracle JDBC DbUtil jdbc数据库连接
2012-05-26 12:28 2744Oracle JDBC DbUtil jdbc数据库连接 1. ... -
netbeans 多线程 IllegalStateException
2012-05-25 12:28 1464WARNING [org.netbeans.core.wind ... -
JAVA TCP SOCKET
2012-05-24 19:23 1424TcpConnect.java /* * To cha ... -
Java Socket 连接超时
2012-05-24 19:11 1961Java Socket 连接超时设置 String ip ... -
netbeans platform 控件可以自动缩放(放大 缩小)
2012-05-24 18:54 1952netbeans platform 控件可以自动缩放(放大 缩 ... -
netbeans platform TopComponent 重新组合显示
2012-05-22 09:52 989netbeans platform TopComponent ... -
调用netbeans 平台自己的方法
2012-05-11 10:42 1121全屏 import javax.swing.Action; ... -
JAVA定时执行
2011-07-05 13:44 1839LoadResourceTimerTask.java pa ... -
加载properties文件至java.util.Properties对象
2011-04-07 10:53 950java.net.URL url = Thread.cur ... -
Java验证IP和MAC地址
2010-11-29 16:50 8082ip匹配 /** * 验证reque ... -
Java获得登录的IP和MAC地址
2010-11-29 16:26 13718/** * 通过HttpServle ...
相关推荐
强大的自定义标签分页,内有说明,更加通用。
前一阵给学员做了一个关于jsp自定义标签的讲座, 自己动手做了一些实例,其中有一个分页标签做得比较通用,其中用到了一些java反射的原理.
标签标注 代码跳转 代码调试 错误检查 api提示接口(api导出工具:xlua ulua slua cocos2d2.x cocos2d3.x) 方法定义列表 自定义宏+模板文件 unity lua调试可查看c#类型值(反射机制) 针对各种框架不同的优化
标签标注 代码跳转 代码调试 错误检查 api提示接口(api导出工具:xlua ulua slua cocos2d2.x cocos2d3.x) 方法定义列表 自定义宏+模板文件 unity lua调试可查看c#类型值(反射机制) 针对各种框架不同的优化
标签标注 代码跳转 代码调试 错误检查 api提示接口(api导出工具:xlua ulua slua cocos2d2.x cocos2d3.x) 方法定义列表 自定义宏+模板文件 unity lua调试可查看c#类型值(反射机制) 针对各种框架不同的优化
标签标注 代码跳转 代码调试 错误检查 api提示接口(api导出工具:xlua ulua slua cocos2d2.x cocos2d3.x) 方法定义列表 自定义宏+模板文件 unity lua调试可查看c#类型值(反射机制) 针对各种框架不同的优化
本文档中的大纲包含J2EE的知识点,有“Java环境搭建”,“集合框架”,“xml”,“反射”,“Jsp标签”,“通用分页”,“自定义mvc框架”,“MySQL”,“DDL”,“DQL”,“DML”,“DCL”,“TCL”,“视图”,...
反复思考(关于数据结构和生命) 了解有关Go反射的更多信息。去反思概念在应用程序运行时进行反思/自省涉及三个概念: Reflection.Type ...........提供有关数据结构名称(用户,地址等),其字段名称(名称,年龄)...
React Native动画展示此仓库包含一个使用新的Reanimated 2 API进行动画挑战和示例的...手风琴简单的手风琴清单 自定义标签栏来自Dribbble标签栏的自定义标签栏挑战切换交互 滑冰挑战赛Dribbble Skate Challenge的Skat
自定义商品属性,自定义商品简介魔板,自由增加一级页面数量,自由更换页面样式, 自由设定管理员权限,自由设定页面局部类型商品,在线调查,在线留言,团体购物, 自由设定友情链接和页面的关联,自由设定信息和...
使用自定义的标签 1.JDK的元注解:就是专门用来声明其他注解的注解 作用:通过元注解了解其他注解的使用特点,还可以自定义注解 2.元注解: 1. @Target @Target ...
自己写了一套asp.net的小型模板,标签形式都是自定义的,而且是可扩展的,也用了反射。但是现在看来,用反射而又没有做一些处理,效率应当是十分低下的。其基本工作原理就是正则表达式匹配标签,而后通过标签的进行...
自定义商品属性,自定义商品简介魔板,自由增加一级页面数量,自由更换页面样式, 自由设定管理员权限,自由设定页面局部类型商品,在线调查,在线留言,团体购物, 自由设定友情链接和页面的关联,自由设定信息和...
用jsp实现的学生信息查询系统,只有一张学生表和一张管理员表。实现了自定义标签库、国际化和分页。分页设计得比较巧妙,可以共用。有建表的sql语句,还用到了java反射。整个结构耦合度低,代码清晰易懂!
3. 自定义皮肤以及自定义信息显示功能:系统自带标签可使不懂ASP.NET甚至不懂html的用户任意更改首页,栏目页以及内容页需要显示的信息以及整体布局; 4. 反射技术的应用使系统可轻松切换Access/Sqlserver2005数据库...
AutoMapper包含以下功能:平展投影配置验证列表和数组嵌套映射自定义类型转换程序自定义值转换程序 自定义值格式程序 Null值替换AutoMapper是一款单向映射器。这意味着它并没有内建映射对象支持来回写至原始源,除非...
全新打造继 卓越 当当 等知名电子商务平台的孪生购物交易平台自动成比例压缩生成JPG/GIF图片,多种网上支付端口,在线编辑简介网页,自定义广告形式和内容自定义商品属性,自定义商品简介魔板,自由增加一级页面数量...
*第十一阶段:JSP开发:JSP语法和标签,自定义标签,EL,JSTL库了解以及MVC三层架构的设计模式理念; *第十二阶段:AJAX开发:AJAX原理,请求响应处理,AJAX开发库; *第十三阶段:轻量级框架,三大框架之一...
这里面包含了平常用到的一些功能类,DOS操作,ini文件操作,FTP上传下载,log日志文件操作,winform使用的遮罩层,反射功能,验证码,注册表操作,注册码生成,文件序列化,加解密,网页标签分析器 2.ICSoft.Update...
反射详解 异常处理TryExcept 网络编程Socket介绍 Socket通信案例消息发送与接收 第8周 上节回顾 Socket实现简单的ssh客户端 Socket实现简单的ssh服务端 积极思考正能量 Socket实现简单的ssh2 Socket粘包 Socket...