热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

实例模拟struts核心流程

<spanstyle"font-family:MicrosoftYaHei;font-size:18px"><?xmlversion"10"encoding"UTF-8"?><action-config><action


	
		/addSuccess.jsp
		/addError.jsp
	
	
	
		/delSuccess.jsp
		/delError.jsp
	
	
	
		/modifySuccess.jsp
		/modifyError.jsp
	
	
	
		/querySuccess.jsp
		/queryError.jsp
	

package com.tigaoban.domain;

import java.util.Map;

public class ActionMapping {
	private String path;
	
	private String type;
	
	private Map forwardMap;

	public String getPath() {
		return path;
	}

	public void setPath(String path) {
		this.path = path;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public Map getForwardMap() {
		return forwardMap;
	}

	public void setForwardMap(Map forwardMap) {
		this.forwardMap = forwardMap;
	}
}
package com.tigaoban.util;

import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

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

import com.tigaoban.domain.ActionMapping;



/**
 * 采用单例模式解析ActionConfig.xml文件
 * @author Haitao
 *
 */
public class XmlConfigReader {
	
	
	//懒汉式
	private static XmlConfigReader instance = null;//XmlConfigReader 实例
	
	
	
	//key=名称,value = 具体的动作实体类
	private Map actiOnMap= new HashMap();
	
	/**
	 * 构造方法
	 */
	private XmlConfigReader(){
		SAXReader reader = new SAXReader();
		InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("ActionConfig.xml");
		
		try {
			Document doc = reader.read(in);
			
			//取得Action相关的配置信息,并存入ActionMapping实体中
			List actiOnList= doc.selectNodes("//action");
			for (Iterator iter = actionList.iterator(); iter.hasNext();){
				Element element = iter.next();
				
				String path = element.attributeValue("path");
				String type = element.attributeValue("type");
				//System.out.println(path);
				
				List forwardList = element.elements("forward");
				//存放forward中信息的map
				Map forwardMap = new HashMap();
				
				for (Iterator iterator = forwardList.iterator();iterator.hasNext();){
					Element forward = iterator.next();
					String name = forward.attributeValue("name");
					String value = (String)forward.getData();
					forwardMap.put(name, value);
				}
				
				//新建ActionMapping实体
				ActionMapping actiOnMapping= new ActionMapping();
				actionMapping.setPath(path);
				actionMapping.setType(type);
				actionMapping.setForwardMap(forwardMap);
				
				//将actionMapping放入map中
				actionMap.put(path, actionMapping);
				
			}
		} catch (DocumentException e) {
			e.printStackTrace();
		}	
	}
	
	public static synchronized XmlConfigReader getInstance() {
		if(instance == null){
			instance = new XmlConfigReader();
		}
		return instance;
	}
	
	/**
	 * 取得action相关配置
	 * @return
	 */
	public Map  getMap() {
		return actionMap;
	}
	
	
}	

 


推荐阅读
  • 开发笔记:sql盲注之报错注入(附自动化脚本)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了sql盲注之报错注入(附自动化脚本)相关的知识,希望对你有一定的参考价值。 ... [详细]
  • –声明变量DECLAREBuCodeASvarchar(max)–声明游标DECLAREC_EmployeesCURSORFAST_FORWARDFORSELECTBUCodeFR ... [详细]
  • 一、使用ContentProvider(内容提供者)共享数据ContentProvider在android中的作用是对外共享数据,也就是说 ... [详细]
  • 大数据分析Python有哪些爬虫框架
    一、ScrapyScrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。。用 ... [详细]
  • nvmw安装,用于控制node版本;
    之前一直使用的是nodev2.2.0版本,挺说新版本的node解决了npm安装插件产生文件夹结构过深的问题,所以就想更新试试;上网一看才发现,尼玛的node已经到了6.+版本了,好 ... [详细]
  • hibernate映射组件映射
    在Hibernate中,component是某个实体的逻辑组成部分,它与实体的根本区别是没有oid(对象标识符),compo ... [详细]
  • 在ROS系统中,参数读写一般通过xml或者yaml格式的文件,其中yaml用得比较多。这是一种可读性高,轻量级的标记语言,简单好用。对于yaml文件,ros中用的较早版本的yaml- ... [详细]
  • 如何理解MyBatis动态SQL
    本篇内容主要讲解“如何理解MyBatis动态SQL”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解M ... [详细]
  • 一、在androidStudio中实现tabs比较简单,新建项目就可以选择tabs模板进行创建,默认实现tabs功能:直接运行项目就可以看到效果:可以说非常简单,但是我们在实际开发 ... [详细]
  • apk简单介绍APK的组成apk安装流程app的启动过程apk打包流程AIDLAIDL介绍为什么要设计这门语言它有哪些语法?默认支持的数据类型包括什么是apk打包流程 ... [详细]
  • 把Bean注入到IOC容器里面的方式有7种方式:使用xml的方式来声明Bean的定义,Spring容器在启动的时候会加载并解析这个xml, ... [详细]
  • 今天在使用springboot整合mybatis时一直无法注入mapper,不管怎么配置注解扫描包等,都不行,移动了Application ... [详细]
  • 微信小程序官方组件展示之表单组件input源码
    以下将展示微信小程序之表单组件input源码官方组件能力,组件样式仅供参考,开发者可根据自身需求定义组件样式,具体属性参数详见小程序开发文档。功能描述:输入框。该组件是原生组件, ... [详细]
  • [字符编码]Numeric Character Reference和HTML Entities(一)
    你是否在dreamweaver里编辑网页的时候看到&#x3A3;这样的东西,你曾使用过&nbsp;这样的玩意吧,或者你在调试webservice的时候看到返回xml字符串中现 ... [详细]
  • Adapter相当于C(Controller,控制器),listView相当于V(View,视图)用于显示数据为ListView提供数据的List,数组或数据库相当于MVC模式中的 ... [详细]
author-avatar
浩劫19_439
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有