亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? actionparser.java

?? webwork study w ebwork study
?? JAVA
字號:
package jaction.xml;

import java.io.*;		//File
import java.util.*;		//HashMap

import javax.xml.parsers.*;		//DocumentBuilderFactory DocumentBuilder

import org.w3c.dom.*;		//Document Node Element NodeList NamedNodeMap
import org.w3c.dom.traversal.*;		//NodeIterator NodeFilter DocumentTraversal

import jaction.utility.*;
import jaction.workspace.JactionConfigResource;



/**
 *
 * 注冊事件(action xml) 解析類
 * @author yanger
 * @version 1.0
 * @since 1.1 $weigang 2003-4-22
 */
public class ActionParser extends XMLParser{
	
	/**
	 * xml file path
	 */
	public static final String JACTION_CONFIG=JactionConfigResource.getMessage("jaction.action");
    
	/**
     * xml文件的Document
     */
    public static Document document=null;
	//////////////////////////////////////////////////////////////
	//	action node name
	//////////////////////////////////////////////////////////////
	/**
	 * 動作集合標志
	 */
	public static final String ACTION_MAPPING="action-mapping";
	/**
	 * 動作名稱
	 */
	public static final String ACTION_FCODE="name";
	/**
	 *業務類標志
	 */
	public static final String ACTION_BEAN="bean";
	/**
	 * 動作標識
	 */
	public static final String ACTION_ID="id";
	/**
	 * 跳轉標志
	 */
	public static final String ACTION_FORWARD="forward";
	/**
	 * 跳轉方法名稱
	 */
	public static final String ACTION_METHOD="method";
	/**
	 * 輸入頁面
	 */
	public static final String ACTION_INPUT = "input";
	/**
	 * 是否校驗
	 */
	public static final String ACTION_VALIDATE = "validate";
	/**
	 * 跳轉注釋
	 */
	public static final String ACTION_RMK = "rmk";
	/**
	 * 跳轉標識
	 */
	public static final String FORWARD_ID="id";
	/**
	 * 跳轉頁面
	 */
	public static final String FORWARD_PAGE="page";
	//////////////////////////////////////////////////////////////
	//	page node 
	//////////////////////////////////////////////////////////////
	/**
	 * 頁面集合標志
	 */
	public static final String PAGE_MAPPING="page-mapping";
	/**
	 * 頁面
	 */
	public static final String PAGE = "page";
	/**
	 * 頁面標識
	 */
	public static final String PAGE_ID="id";
	/**
	 * 頁面路徑
	 */
	public static final String PAGE_PATH="path";
	/**
	 * 頁面動作
	 */
	public static final String PAGE_ACTION="action";
	/**
	 * 頁面注釋
	 */
	public static final String PAGE_RMK="rmk";

	/**
	 * action 節點
	 */
	protected static Node action = null;
	/**
	 * page 節點
	 */
	protected static Node page = null;
	/**
	 * 初始化環境
	 */
	static{
		ActionParser.init();
		try{
			action = getNode(ACTION_MAPPING);
			page = getNode(PAGE_MAPPING);
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}

	/**
     * 構造函數
     */
    public ActionParser(){
  	}

	/**
     * 將提供的XML文件解析成DOM文檔(初始化)
     * @throws Exception
     */
  	public static void init() {
    	DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    	try {
           	DocumentBuilder builder = factory.newDocumentBuilder();
            File f = new File(JACTION_CONFIG);
           	document = builder.parse(f);
   		}catch (Exception e) {
			System.out.println("controler.init():"+e);
	   	}
  	}
	/**
     * 得到相對應的一個主節點的節點樹
     * @return 一個主節點的節點樹
     * @throws Exception
     */
   	private static NodeList getRootNodelist() throws Exception{
    	Element element = document.getDocumentElement();
        NodeList nodelist = element.getChildNodes();
        return nodelist;
  	}

	///---------------------------------------------------------------->>public method
	/**
	 * 根據actionName、forwardId得到對應的action的列表
	 * @param actionName 動作名稱
	 * @param forwardId 邏輯標識
	 * @return HashMap 邏輯中可用的動作集合
	 * @exception Exception 
	 * @deprecated 1.4版本以后無需定義該動作集合
	 */
	public static HashMap getActionMap(String actionName, String forwardId) throws Exception{
		HashMap hashMap = new HashMap();
    	Node actionNode = getSubNode(action, ACTION_FCODE, actionName);
    	Node forwardNode = getSubNode(actionNode, FORWARD_ID, forwardId);
		String pageId = getAttributeOfNode(forwardNode, FORWARD_PAGE);
		
    	Node pageNode = getSubNode(page, PAGE_ID, pageId);
		NodeList nodeList = pageNode.getChildNodes();
		Node isNode = null;		//page-mapping/page/action node
		String key = null;		//key of hashMap
		String value = null;	//value of hashMap
    	for(int i=0;i<nodeList.getLength();i++){
			isNode = nodeList.item(i);
			if(isNode.hasAttributes()){
				key = getAttributeOfNode(isNode, ACTION_ID);
				value = getAttributeOfNode(getSubNode(action, ACTION_ID, key), ACTION_FCODE);
				FileUtil.log("key="+key+" value="+value);
				hashMap.put(key, value);
			}
    	}
    	return hashMap;
	}


	/**
	 * 根據actionName得到對應的Bean的路徑
	 * @param actionName 動作名稱
	 * @return String 事件相應處理bean名稱
	 * @exception Exception
	 */
	public static String getBeanName(String actionName) throws Exception{
    	Node actionNode = getSubNode(action, ACTION_FCODE, actionName);
    	String beanName = getAttributeOfNode(actionNode, ACTION_BEAN);
    	return beanName;
	}
	

	/**
	 * 根據actionName、forwardId得到對應的jsp的路徑
	 * @param actionName 動作名稱
	 * @param forwordId 邏輯跳轉標志
	 * @return String 頁面的http訪問URL
	 * @exception Exception
	 */
    public static String getPathOfPageNode(String actionName, String forwardId) throws Exception{
    	Node actionNode = getSubNode(action, ACTION_FCODE, actionName);
    	Node forwardNode = getSubNode(actionNode, FORWARD_ID, forwardId);
		
		String pageId = getAttributeOfNode(forwardNode, FORWARD_PAGE);
    	Node pageNode = getSubNode(page, PAGE_ID, pageId);
		
    	String pagePath = getAttributeOfNode(pageNode, PAGE_PATH);
    	return pagePath;
    }

	/**
	 * 根據actionName得到對應的method名稱
	 * @param actionName 動作名稱
	 * @return String 動作處理的方法名稱
	 * @exception Exception
	 * 
	 */
	public static String getMethod(String actionName) throws Exception{
    	Node actionNode = getSubNode(action, ACTION_FCODE, actionName);
		
    	String methodName = getAttributeOfNode(actionNode, ACTION_METHOD);
    	return methodName;
	}

	/**
	 * 根據acitonName得到請求頁面項
	 * @param actionName 動作名稱
	 * @return String 輸入項
	 * @exception Exception
	 * @deprecated 1.4以后去掉該屬性
	 */
	public static String getInput(String actionName) throws Exception{
    	Node actionNode = getSubNode(action, ACTION_FCODE, actionName);
    	String input = getAttributeOfNode(actionNode, ACTION_INPUT);
    	return input;
	}
	/**
	 * 根據acitonName ,得到validate的屬性,如果沒有該屬性,返回null
	 * @param actionName
	 * @return 得到validate的屬性值,如果沒有該屬性,返回null
	 * @exception 異常
	 * @Since 1.4.3.0 $yanger 2003-5-2 8:28:07
	 */
	public static String getValidateValueOfActionAttr(String actionName) throws Exception{
    	Node actionNode = getSubNode(action, ACTION_FCODE, actionName);
		
    	String validate = getAttributeOfNode(actionNode, ACTION_VALIDATE);
    	return validate;
	}
	/**
	 * 查找pageNode
	 * @param pageid 
	 * @return pageNode
	 * @Since 1.4.3.0 $yanger 2003-5-2 8:30:39
	 */
	 public static Node findPageNode(String pageId) throws Exception{
		Node pageNode = getSubNode(page, PAGE_ID, pageId);
		
		return pageNode;
	 }
	 /**
	 * 得到page path
	 * @param pageid 
	 * @return pagepath
	 * @Since 1.4.3.0 $yanger 2003-5-2 8:28:20
	 */
	 public static String getPathValueOfPageAttr(String pageId) throws Exception{
		Node pageNode = findPageNode(pageId);
		
		String pagePath = getAttributeOfNode(pageNode, PAGE_PATH);
		
		return pagePath;
	 }



	/**
	 * 根據page id得到相應的page map
	 * @param pageId 頁面標志
	 * @return HashMap 
	 * @deprecated 機制取消
	 */
	public static HashMap getPageMap(String pageId) throws Exception{
		HashMap hash = new HashMap();
		Node isNode = null;
		String isPageId = null;
		NodeList nodeList = page.getChildNodes();
		for(int i=0;i<nodeList.getLength();i++){
			isNode = nodeList.item(i);
			if(isNode.hasAttributes()){
				isPageId = getAttributeOfNode(isNode, PAGE_ID);
				if(pageId == null || pageId.equals("") || (isPageId.indexOf(pageId) != -1)){
					PageObject pageObject = new PageObject(isPageId);
					hash.put(isPageId, pageObject);
				}
			}
		}
		return hash;
	}

	/**
	 * 根據action name 得到相應的action map
	 * @param actionName
	 * @return HashMap
	 * @exception Exception
 	 * @deprecated 機制取消
	 */
	public static HashMap getActionMap(String actionFcode) throws Exception{
		HashMap hash = new HashMap();
		Node isNode = null;
		String isActionFcode = null;
		NodeList nodeList = action.getChildNodes();
		for(int i=0;i<nodeList.getLength();i++){
			isNode = nodeList.item(i);
			if(isNode.hasAttributes()){
				isActionFcode = getAttributeOfNode(isNode, ACTION_FCODE);
				if(actionFcode == null || actionFcode.equals("") || (isActionFcode.indexOf(actionFcode) != -1)){
					ActionObject actionObject = new ActionObject(isActionFcode);
					hash.put(isActionFcode, actionObject);
				}
			}
		}
		return hash;
	}


///////////////////////////////protected///////////////////////////////////////	
	/**
   	 * 通過id得到節點
   	 * @param nodeId node name
   	 * @return Node
	 */
	protected static Node getNode(String nodeName) throws Exception{
		Node isNode = null;
    	NodeList nodelist = getRootNodelist();
		//沒有子節點
		if(nodelist.getLength()==0){
			return null;
		}
    	for(int i=0;i<nodelist.getLength();i++) {
      		isNode = nodelist.item(i);
      		if(isNode.getNodeName().equals(nodeName)){
            	break;
	        }
    	}
		return isNode;
	}

	/**
	 * 通過子節點id的值得到子節點
	 * @param parentNode 父節點
	 * @param attributeName 屬性名稱
	 * @param attributeValue 屬性值
	 * @return Node 子節點
	 * @exception Exception
	 */
	protected static Node getSubNode(Node parentNode, String attributeName,
								String attributeValue ) throws Exception{
		Node isNode = null;
		NamedNodeMap nameNodeMap = null;
		NodeList nodeList = parentNode.getChildNodes();
		//沒有子節點
		if(nodeList.getLength()==0){
			return null;
		}
		for(int i=0;i<nodeList.getLength();i++){
			isNode = nodeList.item(i);
			if(isNode.hasAttributes()){
				nameNodeMap = isNode.getAttributes();
				if(nameNodeMap.getNamedItem(attributeName).getNodeValue().equals(attributeValue)){
					break;
				}
			}
		}
		return isNode;
	}

    /**
     * 在節點中根據屬性的名字得到屬性相對應的值
 	 * @param Node 節點
	 * @param attributeName 屬性名稱
	 * @return String 屬性相對應的值
	 * @exception Exception
     */
	protected static String getAttributeOfNode(Node node, String attributeName) throws Exception{
		if(node==null)return null;
		NamedNodeMap namedNodeMap = node.getAttributes();
		if(namedNodeMap==null)return null;
        Node isNode = namedNodeMap.getNamedItem(attributeName);
        if(isNode == null){
			return null;
        }
       	return  isNode.getNodeValue();
    }

/////////////////////////////////////////////////////////////////////////////
	/**
	 * main method
	 */
	public static void main(String [] args) throws Exception{
		System.out.println(getPathOfPageNode("helloworld", "hw"));
		System.out.println(getBeanName("helloworld"));
		getActionMap("helloworld", "hw");
	}

     /**
	  * 生成String
	  * @param root dom
	  */
     public static void  outputString(Document root){
        NodeIterator iterator = ((DocumentTraversal)root).createNodeIterator(root, NodeFilter.SHOW_ELEMENT, null, true);
        System.out.println("Root = " + iterator.getRoot());
        Node node = iterator.nextNode();
        while(node != null) {
          System.out.println(node);
          node = iterator.nextNode();
        }

        iterator = ((DocumentTraversal)root).createNodeIterator(
        root.getFirstChild().getFirstChild().getNextSibling(),
        NodeFilter.SHOW_ELEMENT, null, true);
        System.out.println("\nRoot = " + iterator.getRoot());
        node = iterator.nextNode();
        while(node != null) {
          System.out.println(node);
          node = iterator.nextNode();
        }
     }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久快鸭| 国产欧美一区二区精品性色超碰| 欧美精品一二三四| 久久蜜桃av一区二区天堂 | 日本亚洲免费观看| 99视频精品在线| 亚洲精品一区二区三区影院 | 欧美亚洲一区三区| 久久久久免费观看| 久久国产精品99精品国产 | 2017欧美狠狠色| 午夜亚洲福利老司机| av一二三不卡影片| 国产欧美精品一区aⅴ影院 | 看国产成人h片视频| 欧美日韩国产精选| 一区二区三区四区五区视频在线观看| 国产精品夜夜嗨| 久久伊人蜜桃av一区二区| 免费在线观看不卡| 91精品国产综合久久久久久久| 亚洲一区二区四区蜜桃| 91免费观看国产| 亚洲日本丝袜连裤袜办公室| yourporn久久国产精品| 国产精品免费aⅴ片在线观看| 国产一区二区不卡在线| 26uuu久久综合| 韩日av一区二区| 国产欧美一区视频| 大胆亚洲人体视频| 亚洲人成伊人成综合网小说| 99精品偷自拍| 亚洲精选视频在线| 欧美色老头old∨ideo| 亚洲成人免费视| 日韩美女在线视频| 国产精品一区二区久久精品爱涩| 久久久蜜桃精品| 成人av网站在线| 亚洲精品视频一区二区| 在线观看成人小视频| 日日噜噜夜夜狠狠视频欧美人| 欧美精品日韩综合在线| 老司机精品视频在线| 国产日韩欧美亚洲| 色综合视频在线观看| 亚洲超丰满肉感bbw| 欧美一级二级三级蜜桃| 国产精品综合一区二区三区| 国产精品欧美一区喷水| 欧美性高清videossexo| 免费人成精品欧美精品| 国产午夜精品一区二区三区四区| 9人人澡人人爽人人精品| 亚洲一区二区三区在线看| 欧美一区二区三区视频免费播放 | 欧美性色综合网| 日本91福利区| 国产精品久久久久久妇女6080| 91久久线看在观草草青青 | 青青草伊人久久| 国产欧美日本一区二区三区| 色8久久人人97超碰香蕉987| 久久av老司机精品网站导航| 中文字幕在线一区免费| 正在播放亚洲一区| 国产成人精品一区二区三区四区| 亚洲免费观看高清完整| 日韩美女一区二区三区| 色噜噜夜夜夜综合网| 国产在线国偷精品产拍免费yy| 亚洲色图在线播放| 精品粉嫩aⅴ一区二区三区四区| jlzzjlzz亚洲女人18| 久久国产人妖系列| 一级日本不卡的影视| 国产欧美一区视频| 91精品国产手机| 在线国产亚洲欧美| 国产福利一区二区三区在线视频| 五月天欧美精品| 日韩伦理免费电影| 久久久一区二区三区捆绑**| 欧美日韩一本到| 白白色亚洲国产精品| 国产美女在线观看一区| 午夜电影网亚洲视频| 亚洲人成影院在线观看| 国产精品午夜在线| 久久精品人人做人人爽人人| 日韩午夜在线观看| 欧美日韩久久久| 欧美性高清videossexo| 91亚洲男人天堂| 成人午夜视频网站| 国产精品77777竹菊影视小说| 蜜桃在线一区二区三区| 三级亚洲高清视频| 午夜电影一区二区| 亚洲午夜在线观看视频在线| 一区二区三区中文字幕在线观看| 国产日韩欧美制服另类| 国产视频一区在线观看| 久久青草欧美一区二区三区| 日韩欧美专区在线| 91麻豆精品国产91久久久久久久久 | 日韩影视精彩在线| 亚洲成a人片在线不卡一二三区| 亚洲日本免费电影| 亚洲女同女同女同女同女同69| 中文字幕人成不卡一区| 亚洲色图制服诱惑| 一区二区成人在线观看| 性欧美大战久久久久久久久| 亚洲成人综合在线| 日日欢夜夜爽一区| 久久国内精品视频| 国产麻豆精品theporn| 国产精一品亚洲二区在线视频| 国产剧情在线观看一区二区 | 久久99热这里只有精品| 免费日韩伦理电影| 国产麻豆午夜三级精品| 国产一区二区在线观看视频| 国产精品18久久久久久久久| 国产成人午夜片在线观看高清观看| 国产精品中文欧美| www.欧美.com| 欧美日韩一卡二卡| 精品久久久久久久久久久久久久久久久| 欧美一区永久视频免费观看| 精品少妇一区二区三区视频免付费| 精品捆绑美女sm三区| 国产精品系列在线| 亚洲午夜电影在线| 久久99精品国产.久久久久| 国产在线看一区| 99久久综合精品| 欧美日韩1234| 国产色爱av资源综合区| 亚洲综合一二三区| 久久国产精品区| 色综合久久天天| 日韩欧美123| 亚洲欧洲av在线| 日本不卡在线视频| 91在线看国产| 精品国产麻豆免费人成网站| 中文字幕一区二区三区乱码在线| 香蕉成人啪国产精品视频综合网 | 美美哒免费高清在线观看视频一区二区| 精品写真视频在线观看| 欧洲国内综合视频| 精品国产亚洲一区二区三区在线观看 | 日韩欧美一区二区久久婷婷| 国产精品三级av| 麻豆极品一区二区三区| 91在线高清观看| 久久在线免费观看| 午夜精品福利在线| 91香蕉国产在线观看软件| 欧美岛国在线观看| 午夜精品一区二区三区免费视频 | 一区二区三区在线播放| 久久99国产精品免费| 91福利小视频| 国产精品久线观看视频| 捆绑调教一区二区三区| 欧美日韩国产美| 一区二区三区丝袜| 成人av在线播放网址| 久久久精品国产免费观看同学| 天天综合天天做天天综合| 91论坛在线播放| 中文字幕不卡在线| 国产一区二区成人久久免费影院| 91精品婷婷国产综合久久性色| 亚洲人妖av一区二区| 国产白丝精品91爽爽久久| 亚洲精品在线网站| 美女性感视频久久| 欧美一区二区三区在线视频| 一区二区三区在线不卡| 91蝌蚪porny| 亚洲欧美日韩精品久久久久| 高清不卡一二三区| 国产亚洲精久久久久久| 激情综合网av| 欧美精品一区二区三区蜜桃视频| 免费av网站大全久久| 日韩一级免费一区| 日韩精品视频网站| 日韩三区在线观看| 国产综合色精品一区二区三区| 日韩欧美123| 国产成人精品免费网站| 国产精品区一区二区三区| 成人午夜看片网址| 亚洲欧洲成人自拍|