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

📄 gdparsexml.java

📁 j2ee程序。 spring、xml、 实现增加内容选项。
💻 JAVA
字号:
package com.gd.mvc.util;

import java.io.File;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class GdParseXml {
	private Document document;//获取指定Xml的document
    private String path;//获取从页面传来的访问路径
    private String action;//获取从页面传来的动作
    private String forwardJsp;//获取Xml设定的返回的页面
    private String forwardJspPath;//获取Xml设定的返回页面的path
    private String methodForwardJsp;//获取Xml中方法对应的forward
    private String actionName;	//获取Xml中访问路径对应的actionName
    private List voId = new ArrayList();//获取Xml中设定的voId
    private List voClass = new ArrayList();//获取Xml中设定的voClass
    private List voType = new ArrayList();//获取Xml中设定的voType
    private List voValidate = new ArrayList();//获取Xml中设定的voValidate
    private List voTable = new ArrayList();//获取Xml中设定的voTable
    private String method;//获取Xml中对应的方法  
    private String prefix;//获取Xml中设定的页面的前缀
    private String suffix;//获取Xml中设定的页面后缀
    private String extendsAction;//获取Xml中设定的是否继承GdAction
	

	//从文件读取XML,输入文件名,返回XML文档
    public void read(String fileName) throws MalformedURLException, DocumentException {
       SAXReader reader = new SAXReader();
       document = reader.read(new File(fileName));
    }
    
    //获取根节点
    public Element getRootElement(Document doc){
        return doc.getRootElement();
    }
    
    /**
     * 用来解析此架构的xml档,产生对应的参数,即可在bean中设定VO,也可以在Page中设定VO
     * @return void
     */
    public void parseXml() {
    	List listPathAttribute = document.selectNodes("/nancy-config/page/@path" ); //获取所有page的path属性
		List listPageElement = document.selectNodes("/nancy-config/page" );//获取所有的page
        Iterator iteratorListPathAttribute = listPathAttribute.iterator();
        Iterator iteratorPageElement = listPageElement.iterator();
        int m = 0;//存放VO的key
        int i = 0;//用于VO的key值递增
        //假如Xml中有设定page和page的path属性
        while(iteratorListPathAttribute.hasNext() && iteratorPageElement.hasNext()) {
           Attribute attribute = (Attribute)iteratorListPathAttribute.next();//获取第一个path属性
           Element element = (Element)iteratorPageElement.next();//获取第一个page下面的元素
           Iterator iteratorForward = element.elementIterator("forward");//获取第一个page下面的forward元素
           Iterator iteratorValueObject = element.elementIterator("valueObject");//获取第一个page下面的valueObject元素
           Iterator iteratorAction = element.elementIterator("action");//获取第一个page下面的action元素
           
           if(attribute.getValue().trim().equals(path)) {//如果获得的path和xml配置的一样
        	   actionName = element.attributeValue("actionName");//获取该页面即path对应的actionName
           	   while(iteratorForward.hasNext()) {//就取得该path下所有要返回的页面
                   Element elementForward = (Element)iteratorForward.next();
                   forwardJsp = elementForward.attributeValue("name");//获取forwardJsp的名称
                   forwardJspPath = elementForward.attributeValue("path");//获取forwardJsp的的路径
           	   }
               while(iteratorValueObject.hasNext()) {//获得valueObject的属性
            	   m = i++;//用于VO的key值递增
                   Element elementValueObject = (Element)iteratorValueObject.next(); 
                   voId.add(m, elementValueObject.attributeValue("id"));//获取VO的id
                   voClass.add(m, elementValueObject.attributeValue("class"));//获取VO的class
                   voType.add(m, elementValueObject.attributeValue("type"));//获取该VO是单笔还是多笔
                   voValidate.add(m, elementValueObject.attributeValue("validate"));//获取该VO是否验证
                   voTable.add(m, elementValueObject.attributeValue("table"));//获取VO对应的table
               }
               while(iteratorAction.hasNext()) {
                   Element elementAction = (Element)iteratorAction.next();
                   String actionFlag = elementAction.attributeValue("action").trim();
                   if (actionFlag.equals(action)) {//如果action与页面上的相同
                       method = elementAction.attributeValue("method");//就获取该action相对应的method 
                       methodForwardJsp = elementAction.attributeValue("forward");//就获取该action相对应的forward 
                   	   break;
                   } 
               }
               break;
           }
        }
        
        List listBeanAttribute = document.selectNodes("/nancy-config/bean/@id" );//获取所有bean的id属性
		List listBeanElement = document.selectNodes("/nancy-config/bean" );//获取所有的bean
        Iterator iteratorBeanPathAttribute = listBeanAttribute.iterator();
        Iterator iteratorBeanElement = listBeanElement.iterator();
        //假如Xml中有设定bean和bean的id属性
        while(iteratorBeanPathAttribute.hasNext() && iteratorBeanElement.hasNext()) {
        	Attribute attribute = (Attribute)iteratorBeanPathAttribute.next();
            Element element = (Element)iteratorBeanElement.next();
            if(attribute.getValue().equals("viewResolver")) {//假如有id为viewResolver的bean
            	Iterator iteratorPrefix = element.elementIterator("prefix");//获取id为viewResolver的bean下的prefix元素
            	Iterator iteratorSuffix = element.elementIterator("suffix");//获取id为viewResolver的bean下的suffix元素
            	Element elementPrefix = (Element)iteratorPrefix.next();
            	Element elementSuffix = (Element)iteratorSuffix.next();
            	prefix = elementPrefix.getText();//获得viewResolver指定的前缀prefix
            	suffix = elementSuffix.getText();//获得viewResolver指定的后缀suffix  
            }
            if(attribute.getValue().equals("actionResolver")) {//假如有id为actionResolver的bean
            	Iterator iteratorExtends = element.elementIterator("extends");
            	Element elementExtends = (Element)iteratorExtends.next();
            	extendsAction = elementExtends.getText();//获得actionResolver指定的继承GdAction 
            }
            if(attribute.getValue().equals("valueObjects")) {//假如有id为valueObjects的bean
            	Iterator iteratorValueObject = element.elementIterator("valueObject");
            	while(iteratorValueObject.hasNext()) {//获得valueObject的属性
            		m = i++;
                    Element elementValueObject = (Element)iteratorValueObject.next(); 
                    voId.add(m, elementValueObject.attributeValue("id"));//获取VO的id
                    voClass.add(m, elementValueObject.attributeValue("class"));//获取VO的class
                    voType.add(m, elementValueObject.attributeValue("type"));//获取该VO是单笔还是多笔
                    voValidate.add(m, elementValueObject.attributeValue("validate"));//获取该VO是否验证
                    voTable.add(m, elementValueObject.attributeValue("table"));//获取VO对应的table
                } 
            }
        }
    	
    }

	/**获取action
	 * @return the action
	 */
	public String getAction() {
		return action;
	}

	/**设定action
	 * @param action the action to set
	 */
	public void setAction(String action) {
		this.action = action;
	}

	/**获取actionName
	 * @return the actionName
	 */
	public String getActionName() {
		return actionName;
	}

	/**设定actionName
	 * @param actionName the actionName to set
	 */
	public void setActionName(String actionName) {
		this.actionName = actionName;
	}

	/**获取document
	 * @return the document
	 */
	public Document getDocument() {
		return document;
	}

	/**设定document
	 * @param document the document to set
	 */
	public void setDocument(Document document) {
		this.document = document;
	}

	/**获取forwardJsp
	 * @return the forwardJsp
	 */
	public String getForwardJsp() {
		return forwardJsp;
	}

	/**设定forwardJsp
	 * @param forwardJsp the forwardJsp to set
	 */
	public void setForwardJsp(String forwardJsp) {
		this.forwardJsp = forwardJsp;
	}

	/**获取forwardJspPath
	 * @return the forwardJspPath
	 */
	public String getForwardJspPath() {
		return forwardJspPath;
	}

	/**设定forwardJspPath
	 * @param forwardJspPath the forwardJspPath to set
	 */
	public void setForwardJspPath(String forwardJspPath) {
		this.forwardJspPath = forwardJspPath;
	}

	/**获取method
	 * @return the method
	 */
	public String getMethod() {
		return method;
	}

	/**设定method
	 * @param method the method to set
	 */
	public void setMethod(String method) {
		this.method = method;
	}

	/**获取methodForwardJsp
	 * @return the methodForwardJsp
	 */
	public String getMethodForwardJsp() {
		return methodForwardJsp;
	}

	/**设定methodForwardJsp
	 * @param methodForwardJsp the methodForwardJsp to set
	 */
	public void setMethodForwardJsp(String methodForwardJsp) {
		this.methodForwardJsp = methodForwardJsp;
	}

	/**获取path
	 * @return the path
	 */
	public String getPath() {
		return path;
	}

	/**设定path
	 * @param path the path to set
	 */
	public void setPath(String path) {
		this.path = path;
	}

	/**获取prefix
	 * @return the prefix
	 */
	public String getPrefix() {
		return prefix;
	}

	/**设定prefix
	 * @param prefix the prefix to set
	 */
	public void setPrefix(String prefix) {
		this.prefix = prefix;
	}

	/**获取suffix
	 * @return the suffix
	 */
	public String getSuffix() {
		return suffix;
	}

	/**设定suffix
	 * @param suffix the suffix to set
	 */
	public void setSuffix(String suffix) {
		this.suffix = suffix;
	}

	/**获取voClass
	 * @return the voClass
	 */
	public List getVoClass() {
		return voClass;
	}

	/**设定voClass
	 * @param voClass the voClass to set
	 */
	public void setVoClass(List voClass) {
		this.voClass = voClass;
	}

	/**获取voId
	 * @return the voId
	 */
	public List getVoId() {
		return voId;
	}

	/**设定voId
	 * @param voId the voId to set
	 */
	public void setVoId(List voId) {
		this.voId = voId;
	}

	/**获取voType
	 * @return the voType
	 */
	public List getVoType() {
		return voType;
	}

	/**设定voType
	 * @param voType the voType to set
	 */
	public void setVoType(List voType) {
		this.voType = voType;
	}

	/**获取extendsAction
	 * @return the extendsAction
	 */
	public String getExtendsAction() {
		return extendsAction;
	}

	/**设定extendsAction
	 * @param extendsAction the extendsAction to set
	 */
	public void setExtendsAction(String extendsAction) {
		this.extendsAction = extendsAction;
	}

	/**获取voValidate
	 * @return the voValidate
	 */
	public List getVoValidate() {
		return voValidate;
	}

	/**设定voValidate
	 * @param voValidate the voValidate to set
	 */
	public void setVoValidate(List voValidate) {
		this.voValidate = voValidate;
	}

	/**获取voTable
	 * @return the voTable
	 */
	public List getVoTable() {
		return voTable;
	}

	/**设定voTable
	 * @param voTable the voTable to set
	 */
	public void setVoTable(List voTable) {
		this.voTable = voTable;
	} 
}

⌨️ 快捷键说明

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