package com.lzq.servlet;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class XmlConfigReader {
private static XmlConfigReader instance=new XmlConfigReader();
ActionMapping actionMapping=new ActionMapping();
private Document doc;
private Map actionMap=new HashMap();
private XmlConfigReader(){
try {
SAXReader reader=new SAXReader();
InputStream in=Thread.currentThread().getContextClassLoader().getResourceAsStream("action_config.xml");
doc=reader.read(in);
} catch (DocumentException e) {
e.printStackTrace();
}
}
public ActionMapping getActionMapping(String path){
synchronized(this){
Object type=null;
/*if(action.containsKey(path)){
type=action.get(path);
}*/
Element eltAction = (Element)doc.selectObject("//action[@path=\"" + path + "\"]");
try{
type=Class.forName(eltAction.attributeValue("type")).newInstance();
}catch(Exception e){
e.printStackTrace();
}
Element eltForwards = eltAction.element("forward");
for (Iterator iter = eltForwards.elementIterator(); iter.hasNext();) {
Element eltForward = (Element) iter.next();
actionMap.put(eltForward.attributeValue("name"),eltForward.getTextTrim());
}
actionMapping.setPath(path);
actionMapping.setType(type);
actionMapping.setForwardMap(actionMap);
return actionMapping;
}
}
public static synchronized XmlConfigReader getInstance(){
return instance;
}
/**
* 测试读取
* @param args
*/
public static void main(String[] args) {
ActionMapping actionMapping=XmlConfigReader.getInstance().getActionMapping("/servlet/delUser");
System.out.println(actionMapping.getPath());
System.out.println(actionMapping.getType());
System.out.println(actionMapping.getForwardMap().toString());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Struts的原型解析实例
共22个文件
class:5个
java:5个
xml:3个
2星 需积分: 3 18 下载量 171 浏览量
2013-08-07
16:47:18
上传
评论
收藏 499KB RAR 举报
温馨提示
为了深入学习Struts框架,我们不仅要对它的作用了然于胸,更需要深入剖析它的实现原理。 这里是我做的一个分析Struts原理的实例。
资源推荐
资源详情
资源评论
收起资源包目录
struts_base.rar (22个子文件)
struts_base
src
com
lzq
servlet
Action.java 256B
ActionMapping.java 530B
DelUserAction.java 357B
TestServlet.java 972B
XmlConfigReader.java 2KB
action_config.xml 452B
.classpath 493B
.mymetadata 306B
.myeclipse
.project 1KB
WebRoot
META-INF
MANIFEST.MF 39B
index.jsp 944B
del_success.jsp 839B
del_error.jsp 836B
WEB-INF
classes
com
lzq
servlet
TestServlet.class 2KB
ActionMapping.class 1KB
Action.class 277B
XmlConfigReader.class 3KB
DelUserAction.class 851B
action_config.xml 452B
lib
dom4j-1.6.1.jar 307KB
jaxen-1.1-beta-5.jar 237KB
web.xml 652B
共 22 条
- 1
资源评论
- 雅酷Ken2013-12-08这解析得太肤浅了,拦截器解析还不到火候,而没有验证器和属性自动注入这两大主要功能
- l6462246532013-08-09还不错,就是没注释。
刘正权
- 粉丝: 673
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功