⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rightsxml.java

📁 基于struct结构的jsp
💻 JAVA
字号:
package com.ntsky.xml.bbs;

import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;
import org.dom4j.dom.*;
import org.apache.log4j.Logger ;

import com.ntsky.xml.XMLPath;
import com.ntsky.bbs.service.Rights;
import com.ntsky.xml.bbs.dto.RightsDTO;
import com.ntsky.bbs.service.db.DBRights;
import com.ntsky.xml.XMLReadWrite;

/**
 * <p>Title: Ntsky OpenSource BBS</p>
 * <p>Description: 权限操作的xml</p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: WWW.FM880.COM</p>
 * @author 姚君林
 * @version 1.0
 */

public class RightsXML {
    private final static Logger logger = Logger.getLogger(RightsXML.class);
    private int rightId = 0 ;

    /**
     * 往xml写数据
     */
    public void writeXML(Rights right){
        Document document = null;
        Element root = null;
        try {
           document = XMLReadWrite.getInstance().read(XMLPath.NTSKY_RIGHTS);
           root = document.getRootElement();
       }
        catch (Exception ex) {
            document = DocumentHelper.createDocument();
            root = document.addElement("ntsky");
            logger.error("设置权限点时,读取原始数据出错"+ex.getMessage());
        }
        logger.info("开始写rights信息......");
        Element rights = root.addElement("rights");

        Element rgtId = rights.addElement("rgtId").addText(String.valueOf(right.getRgtId()));
        Element rgtName = rights.addElement("rgtName").addText(right.getRgtName());
        Element rgtSort = rights.addElement("rgtSort").addText(right.getRgtSort());
        try {
            XMLReadWrite.getInstance().write(document,XMLPath.NTSKY_RIGHTS);
        }
        catch (Exception ex) {
            logger.info("往XML中写入信息产生错误 : " + ex.getMessage());
            ex.printStackTrace();
        }
    }

    /**
     * 单条纪录
     * @param rgtId int
     * @return Rights
     */
    public Rights getSelRightsXML(int rgtId){
        Document document = null;
        Rights rights = null;
        try {
            document = XMLReadWrite.getInstance().read(XMLPath.NTSKY_RIGHTS);
            //根节点
            Element root = document.getRootElement();
            Iterator rs_root = root.elementIterator();
            while (rs_root.hasNext()) {
                Element element = (Element) rs_root.next();
                Iterator rs = element.elementIterator("rgtId");
                while (rs.hasNext()) {
                    Element elt = (Element) rs.next();
                    if (String.valueOf(rgtId).equals(elt.getText())) {
                        rights = new DBRights();
                        rights.setRgtId(rgtId);
                        setNode(rights,element,"rgtName");
                        setNode(rights,element,"rgtSort");
                    }
                }
            }
        }
        catch (Exception ex) {
            logger.error("删除数据发生错误 : " + ex.getMessage());
        }
        return rights;
    }

    /**
     * 删除XML中rgtId对应的纪录
     * @param rgtId int
     */
    public void delRightsXML(int rgtId){
        Document document = null;
        try {
            document = XMLReadWrite.getInstance().read(XMLPath.NTSKY_RIGHTS);
            //根节点
            Element root = document.getRootElement();
            Iterator rs_root = root.elementIterator();
            while (rs_root.hasNext()) {
                Element element = (Element) rs_root.next();
                Iterator rs = element.elementIterator("rgtId");
                while (rs.hasNext()) {
                    Element elt = (Element) rs.next();
                    if (String.valueOf(rgtId).equals(elt.getText())) {
                        root.remove(element);
                        XMLReadWrite.getInstance().write(document,XMLPath.NTSKY_RIGHTS);
                    }
                }
            }
        }
        catch (Exception ex) {
            System.out.print("删除数据发生错误 : " + ex.getMessage());
        }
    }

    /**
     * 读取XML数据
     */
    public List getRightsXML(){
        List list = new ArrayList();
        try {
            Document document = XMLReadWrite.getInstance().read(XMLPath.NTSKY_RIGHTS);
            //枚举所有的节点
            logger.info("开始读取xml文件............");
            Element root = document.getRootElement();
            //枚举所有的节点
            Iterator rs_root = root.elementIterator();
            for (; rs_root.hasNext(); ) {
                Rights rights = new DBRights();
                //获取节点
                Element element = (Element) rs_root.next();
                setNode(rights, element, "rgtId");
                setNode(rights, element, "rgtName");
                setNode(rights, element, "rgtSort");
                list.add(rights);
            }
        }
        catch (Exception ex) {
            logger.error("读取权限XML产生错误 : " + ex.getMessage());
        }
        return list;
    }

    private void setRightId(int rightId){
        this.rightId = rightId;
    }
    public int getRightId(){
        return rightId;
    }

    /**
     * 从xml检索数据的方法
     * @param board Board
     * @param element Element
     * @param node String
     */
    public synchronized void setNode(Rights rightsDTO ,Element element ,String node ){
        Iterator rs = element.elementIterator(node);
        while (rs.hasNext()) {
           Element elt = (Element) rs.next();
           if("rgtId".equals(node)){
               rightsDTO.setRgtId(Integer.parseInt(elt.getText()));
               setRightId(Integer.parseInt(elt.getText()));
               logger.info("rgtId节点的值 :" + elt.getText());
           }
           if("rgtName".equals(node)){
               rightsDTO.setRgtName(elt.getText());
               logger.info("rgtName节点的值 :" + elt.getText());
           }
           if("rgtSort".equals(node)){
               rightsDTO.setRgtSort(elt.getText());
               logger.info("rgtSort 节点的值" + elt.getText());
           }
       }
   }

   /**
    * 更新XML
    * @param rightsId int
    */
   public void upRightsXML(Rights rights){
       try {
           Document document = XMLReadWrite.getInstance().read(XMLPath.NTSKY_RIGHTS);
           //枚举所有的节点
           logger.info("开始读取xml文件............");
           Element root = document.getRootElement();
           //枚举所有的节点
           Iterator rs_root = root.elementIterator();
           for (; rs_root.hasNext(); ) {
               //获取节点
               Element element = (Element) rs_root.next();
               Iterator rs = element.elementIterator("rgtId");
               while (rs.hasNext()) {
                   Element elt = (Element) rs.next();
                   String rgtId = String.valueOf(rights.getRgtId());
                   if (rgtId.equals(elt.getText())) {
                       upNode(rights, element, "rgtName");
                       upNode(rights, element, "rgtSort");
                       //写数据
                       XMLReadWrite.getInstance().write(document,XMLPath.NTSKY_RIGHTS);
                   }
               }
           }
       }
       catch (Exception ex) {
           logger.error("读取权限XML产生错误 : " + ex.getMessage());
       }
   }

   /**
    * 更新xml数据的方法
    * @param board Board
    * @param element Element
    * @param node String
    */
   public synchronized void upNode(Rights rights, Element element, String node) {
       Iterator rs = element.elementIterator(node);
       while (rs.hasNext()) {
           Element elt = (Element) rs.next();
           if ("rgtName".equals(node)) {
               elt.setText(rights.getRgtName());
           }
           if ("rgtSort".equals(node)) {
               elt.setText(rights.getRgtSort());
           }
       }
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -