目录
一、xml建模核心思想
xml建模的核心思想就是利用java面向对象的特性,用操作对象的方式操作xml。
二、xml建模的作用
1、节约资源
2、优化性能
3、更加便捷操作xml文件
三、建模案例
以下方config.xml为例
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE config[
<!ELEMENT config (action*)>
<!ELEMENT action (forward*)>
<!ELEMENT forward EMPTY>
<!ATTLIST action
path CDATA #REQUIRED
type CDATA #REQUIRED
>
<!ATTLIST forward
name CDATA #REQUIRED
path CDATA #REQUIRED
redirect (true|false) "false"
>
]>
<config>
<action path="/studentAction" type="org.lisen.mvc.action.StudentAction">
<forward name="students" path="/students/studentList.jsp" redirect="false"/>
</action>
</config>
- 一个标签就是一个对象,在上方xml文件中有三个标签config、action、forward。所以我们需要三个实体类来进行建模
ConfigModel类
在集合中增加ActionModel对象,通过path找到对应的ActionModel对象
package com.zking.mymvc.framework;
import java.util.HashMap;
import java.util.Map;
public class ConfigModel {
private Map<String, ActionModel> actionMap=new HashMap<String, ActionModel>();
/**
* 将ActionModel对象放到map集合
* @param forward
*/
public void put(ActionModel action) {
if(actionMap.containsKey(action.getPath())) {
throw new ActionDuplicateDefinitionException("Action path ="+ action.getPath()+" duplicate definition");
}
actionMap.put(action.getPath(), action);
}
/**
* 通过action中的path从map结合中取出对应的action对象 若path填错则抛出自定义异常未找到
* @param name
* @return
*/
public ActionModel find(String path) {
if(!actionMap.containsKey(path)) {
throw new ActionNotFoundException("Action path ="+ path +" not found");
}
return actionMap.get(path);
}
@Override
public String toString() {
return "ConfigModel [actionMap=" + actio