首页>代码>java自定义MVC框架共享>/t1/src/com/haha/action/ActionFactory.java
package com.haha.action;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

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

public class ActionFactory {
	private static Map<String, AbsMyStrutsAction> map=null;
	//初始化
	private static void init(){
		try {
			SAXReader sr = new SAXReader();
			Document doc = sr.read(ActionFactory.class.getResource("/actions.xml"));
			
			List<Element> list=doc.selectNodes("/beans/bean");
			for(Element el:list){
				//获取name属性
				String name=el.attributeValue("name");
				//获取class属性
				String clsName=el.attributeValue("class");
				//创建一个Action对象
				AbsMyStrutsAction action=createAction(clsName);
				if(action!=null){
					map.put(name, action);
				}
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	//根据类名创建一个Action
	private static AbsMyStrutsAction createAction(String clsName) {
		try {
			Class cls = Class.forName(clsName);
			return (AbsMyStrutsAction) cls.newInstance();
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
	//根据名字获取一个Action
	public static AbsMyStrutsAction getAction(String name){
		if(map==null){
			map=new HashMap<String, AbsMyStrutsAction>();
			init();
		}
		if(map.containsKey(name)){
			return map.get(name);
		}
		return null;
	}
}
最近下载更多
努力的小白程序员  LV3 2022年6月24日
paolaoshi  LV1 2021年6月7日
明123456  LV11 2021年5月27日
请和我缔结契约  LV8 2020年11月14日
YGSheng  LV1 2020年10月26日
kulliang  LV1 2020年8月24日
564782135l  LV7 2020年2月25日
chanxyer  LV6 2019年12月10日
1968400094  LV7 2019年11月27日
mlxgzzz  LV4 2019年11月26日
最近浏览更多
tianli3000  LV8 7月31日
sky1044  LV1 2月19日
592132324  LV4 2023年12月5日
南下daSDH  LV1 2023年10月31日
fuyouou  LV5 2023年7月7日
dzlwindy  LV8 2023年7月3日
zjunzz 2023年6月26日
暂无贡献等级
zhuanglin  LV1 2023年6月12日
cx330a  LV2 2023年4月26日
1475406999  LV6 2023年4月14日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友