- 浏览: 790792 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (151)
- Java-Basic (25)
- Java-NIO (3)
- Java-Mybatis (4)
- Java-Web (15)
- DB-oracle (18)
- DB-mysql (29)
- DB-sqlserver (4)
- DB-postgresql (2)
- DB-SQLite (1)
- DB-H2 (6)
- Tool-Flex (1)
- Tool-Ftp (3)
- Tool-Maven (5)
- Netlink (2)
- Web-CSS (3)
- Web-UI (1)
- Web-JavaScript (8)
- NoSQL (3)
- Mina (2)
- TCPUDP (2)
- SEO (2)
- Network (6)
- DataStructure (1)
- Website-test (1)
- Tool-Excel (1)
- Java-Concurrent (2)
- 前辈指点 (0)
- Eclipse plugins (1)
- DB-NoSQL (1)
最新评论
-
18322696278:
My97DatePicker控件显示时分秒 -
dllhenu:
你好,我让ol加载tiptip,但是tiptip没有在点所在的 ...
OpenLayers下使用Jquery tooltip(Qtip)让要素信息自动显示或隐藏 -
boonya:
你所说的是网页上选择文件路径吧,用ServletFileUpl ...
Apache提供的FTP文件上传下载 -
淡然若水:
我也是用这种方法啊。。。但是FileInputStream i ...
Apache提供的FTP文件上传下载 -
liuweihug:
json序列化反序列化插件-json2.js 介绍和使用 - ...
Json 数据反序列化为Java对象
1、定制XML功能menu.xml
2、编写菜单对象
3、编写解析文件的工具
此方式是一个做UI设计同事写的,拿来给大家分享一下。
<root> <menus id="1" display="产品导航" priority="1" icon="menu-gps"> <menu id="11" pid="1" display="产品之家" url="/service/products" priority="1" icon="menu-location"></menu> <menu id="12" pid="1" display="企业市场" url="/service/market" priority="2" icon="menu-track"></menu> <menu id="11" pid="1" display="在线服务" url="/service/online" priority="1" icon="menu-location"></menu> <menu id="12" pid="1" display="联系购买" url="/service/contactbuy" priority="2" icon="menu-track"></menu> </menus> <!-- 其他服务 --> </root>
2、编写菜单对象
public class Menu { private int id; private String text; private int pid; private String icon; private String url; private int priority; private List<Menu> children; //getter,setter........... }
3、编写解析文件的工具
package com.cmboonya.configuration.service; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.boonya.code4j.orm.hibernate.BaseDao; import com.boonya.code4j.orm.hibernate.BaseService; import com.cmboonya.configuration.dao.AccountMemberGroupDao; import com.cmboonya.configuration.dao.AccountRoleDao; import com.cmboonya.configuration.entity.AccountMember; import com.cmboonya.configuration.entity.AccountMemberGroup; import com.cmboonya.configuration.entity.Menu; @Service @Transactional public class MenuService extends BaseService<Menu> { @Resource private IAccountMemberService accountMemberService; @Resource private IAccountRoleFunctionService accountRoleFunctionService; public Document getDocument(HttpServletRequest req) { SAXReader reader = new SAXReader(); Document document = null; try { document=reader.read((MenuService.class.getClassLoader().getResourceAsStream("menu.xml"))); } catch (DocumentException e) { e.printStackTrace(); } return document; } public List<Menu> getMenuListByUserId(int userId, HttpServletRequest req) { AccountMember user = accountMemberService.getUserById(userId); List<Menu> menuList = new ArrayList<Menu>(); if (user.getType() == 0) { menuList = getAll(req); } else { menuList=getAll(req, userId); } return menuList; } @SuppressWarnings("rawtypes") public List<Menu> getAll(HttpServletRequest req) { List<Menu> menus = new ArrayList<Menu>(); Document document = getDocument(req); Element rootElm = document.getRootElement(); List nodes = rootElm.elements("menus"); for (Iterator it = nodes.iterator(); it.hasNext();) { Element elm = (Element) it.next(); Menu menu = new Menu(); menu.setId(Integer.parseInt(elm.attributeValue("id"))); menu.setText(elm.attributeValue("display")); menu.setPid(elm.attributeValue("pid") == null ? 0 : Integer.parseInt(elm.attributeValue("pid"))); menu.setPriority(Integer.parseInt(elm.attributeValue("priority"))); menu.setIcon(elm.attributeValue("icon")); menu.setUrl(elm.attributeValue("url")); Logger.getLogger(MenuService.class).info("Menu url="+menu.getUrl()); menus.add(menu); List children = elm.elements("menu"); if (children.size() > 0) { List<Menu> childrenMenus = new ArrayList<Menu>(); for (Iterator ch = children.iterator(); ch.hasNext();) { Element element = (Element) ch.next(); Menu childrenMenu = new Menu(); childrenMenu.setId(Integer.parseInt(element.attributeValue("id"))); childrenMenu.setText(element.attributeValue("display")); childrenMenu.setPid(element.attributeValue("pid") == null ? 0 : Integer.parseInt(element.attributeValue("pid"))); childrenMenu.setPriority(Integer.parseInt(element.attributeValue("priority"))); childrenMenu.setIcon(element.attributeValue("icon")); childrenMenu.setUrl(element.attributeValue("url")); Logger.getLogger(MenuService.class).info("childrenMenu url="+childrenMenu.getUrl()); childrenMenus.add(childrenMenu); } menu.setChildren(childrenMenus); } } return menus; } // 根据登录账号获取菜单 @SuppressWarnings("rawtypes") public List<Menu> getAll(HttpServletRequest req, int userId) { AccountMember user = accountMemberService.getUserById(userId); List<AccountRoleFunction> funList = accountRoleFunctionService.getBindByRoleId(user.getRoleId()); List<Integer> funIds = new ArrayList<Integer>(); for (AccountRoleFunction item : funList) { int id=item.getFunctionId(); int temp=id/10; if (!funIds.contains(temp)){ funIds.add(temp); } funIds.add(id); } List<Menu> menus = new ArrayList<Menu>(); Document document = getDocument(req); Element rootElm = document.getRootElement(); List nodes = rootElm.elements("menus"); for (Iterator it = nodes.iterator(); it.hasNext();) { Element elm = (Element) it.next(); int menuId = Integer.parseInt(elm.attributeValue("id")); if (funIds.contains(menuId)) { Menu menu = new Menu(); menu.setId(Integer.parseInt(elm.attributeValue("id"))); menu.setText(elm.attributeValue("display")); menu.setPid(elm.attributeValue("pid") == null ? 0 : Integer.parseInt(elm.attributeValue("pid"))); menu.setPriority(Integer.parseInt(elm.attributeValue("priority"))); menu.setIcon(elm.attributeValue("icon")); menu.setUrl(elm.attributeValue("url")); menus.add(menu); List children = elm.elements("menu"); if (children.size() > 0) { List<Menu> childrenMenus = new ArrayList<Menu>(); for (Iterator ch = children.iterator(); ch.hasNext();) { Element element = (Element) ch.next(); int childrenId = Integer.parseInt(element.attributeValue("id")); if (funIds.contains(childrenId)) { Menu childrenMenu = new Menu(); childrenMenu.setId(Integer.parseInt(element.attributeValue("id"))); childrenMenu.setText(element.attributeValue("display")); childrenMenu.setPid(element.attributeValue("pid") == null ? 0 : Integer.parseInt(element.attributeValue("pid"))); childrenMenu.setPriority(Integer.parseInt(element.attributeValue("priority"))); childrenMenu.setIcon(element.attributeValue("icon")); childrenMenu.setUrl(element.attributeValue("url")); childrenMenus.add(childrenMenu); } } menu.setChildren(childrenMenus); } } } return menus; } }
此方式是一个做UI设计同事写的,拿来给大家分享一下。
发表评论
-
零成本学习soybeanMilk MVC
2013-09-11 00:01 1050SoybeanMilk是一个简易、友好、且零侵入的Java M ... -
Quartz在Spring中比较直观的一种配置
2013-08-06 23:54 914Quartz有许多种配置,最简单易懂的才是值得大家提倡的,最标 ... -
Jquery Ajax的url传递时间含空格不能提交解决方案
2013-06-07 12:11 2372问题描述:在JS代码中访问地址,浏览器控制台报错。 1、错误访 ... -
属性文件国际化
2013-05-22 13:20 1849一个比较成熟的项目国际化必不可少,这里说说怎样将中文信息国际化 ... -
Servlet生成图片验证码
2013-05-16 14:27 11891、生成验证码程序 package com.boonya. ... -
Hibernate的Criteria查询分页示例
2013-04-27 09:20 2842前言:需要注意的是时间区间的查询,字符串转时间一定要转换正确。 ... -
实现$.getJSON的同步请求
2013-01-29 12:47 1786----问题描述: 在getJSON方法体里面可以获取到数据, ... -
OpenLayers下使用Jquery tooltip(Qtip)让要素信息自动显示或隐藏
2013-01-22 10:21 4721首先在官网下载qtip插件:http://craigswork ... -
Jquery需要注意的事件操作
2013-01-22 09:42 1072//单击选中行 $("table.list tr& ... -
OpenLayers添加google地图层异常处理
2013-01-15 15:16 1179异常描述: 打开google图层,地图任何操作事件都弹出[地图 ... -
Google Javascript V3地图展示
2013-01-14 15:44 1450第一部分 获取地图key 1、访问 https://code. ... -
Ajax导出Excel问题
2013-01-11 16:46 11316我的错误轨迹: 1、使用POI导出报表servlet测试没问题 ... -
My97DatePicker控件显示时分秒
2012-09-14 11:16 372403方式一: if (!WebCalendar.timeSho ... -
处理Ajax后台交互中文乱码
2012-08-08 14:26 1193情况:涉及到中文参数提交的时候遇到中文乱码 处理方法: so ...
相关推荐
使用Java读取XML配置文件
JAVA高手解析XML配置文件的读取操作.pdf
java读取 xml文件 的源代码实现自己的Spring
JAVA高手解析XML配置文件的读取操作.doc
JAVA读取数据库的XML配置文件. 前言.虽然现在有HEIBERNATE开源框架做为持久层,可以很好的解决这个问题. 当然,SSH这些开源框架,也必不是人人都得学去用.我个人就喜欢自已写几个常用的类在开发时可以多次使用... 下次...
如何用XML配置JAVA项目数据库,方便用户配置数据库
Java中XML配置文件的读取(sax)
JAVA练习之XML读取,此代码将在模拟SPRING IOC 和 STRUTS中使用 共三部分: 1、XML读取,用于配置文件读取 2、模拟SPRING IOC 3、模拟STRUTS
NULL 博文链接:https://z-gxjs.iteye.com/blog/1846423
读取java 工程中的 xml 配置文件
Java和XML是黄金组合,网上已经有很多文章介绍,XML作为电子商务中数据交换,已经有其不可替代的作用,但是在平时系统开发中,我们不一定都用到数据交换,是不是无法使用XML了?
《Java与XML》(第三版)向您展示如何穿透围绕着XML的宣传迷雾,让XML真正在您的工作中为您所用。它将教您如何使用XML的各种应用程序编程接口(API)、工具和技巧来构建实际的应用程序,为管理从配置文件到网络站点...
压缩包中有一个项目(项目中包含操作xml文件的类和对应的xml文件)、一个用于操作xml文件的jar包,用于操作xml文件,并且获得list集合。
用AS2实现的读取XML配置文件,并保存所有详细到数组里
该资源详细介绍了Java如何读取各种配置文件。如xml ini 等等
* 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作 * @author HX * */ public class XmlManager { /** * 得到某节点下某个属性的值 * @param element 要获取属性的...
JAVA与XML.rar 《Java与XML》(第三版)向您展示如何穿透围绕着XML的宣传迷雾,让XML真正在您的工作中为您所用。它将教您如何使用XML的各种应用程序编程接口(API)、工具和技巧来构建实际的应用程序,为管理从配置...
利用JAVA代码,读取自己添加的XML配置文件,配置文件可以随便修改,不影响代码
主要介绍了java读取xml配置参数代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下