-
1.建模的由来
就是将指定的xml字符串当作对象来操作。
如果说当对一个指定的xml格式字符串完成了建模操作,
好处在于,只需要调用指定的方法就可以完成预定的字符串获取; -
2.建模的思路
(1)、分析需要被建模的文件中有那几个对象
(2)、每个对象拥有的行为以及属性
(3)、定义对象从小到大(从里到外)
(4)、通过23种的设计模式中的工厂模式,解析xml生产出指定对象
好处:
提高代码的复用性 -
3.XML建模
根据XML配置文件元素节点创建元素,节点,实体类
ConfigModel(查找 新增)
ActionModel (属性 新增 查询)
ForwardModel(属性)
利用dom4j+xpath技术实现XML建模ConfigModelFactory(提高代码的复用性) -
4.建模分两步:
(1)、以面向对象的编程思想,描述xml资源文件
(2)、将xml文件中内容封装进model实体对象。
对mvc.xml文件进行建模
- mvc.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<config>
<!-- action标签:可以饱含0~N个forward标签 path:以/开头的字符串,并且值必须唯一 非空 type:字符串,非空 -->
<action path="/regAction" type="test.RegAction">
<!-- forward标签:没有子标签; name:字符串,同一action标签下的forward标签name值不能相同 ; path:以/开头的字符串
redirect:只能是false|true,允许空,默认值为false -->
<forward name="failed" path="/reg.jsp" redirect="false" />
<forward name="success" path="/login.jsp" />
</action>
<action path="/loginAction" type="test.LoginAction">
<forward name="failed" path="/login.jsp" redirect="false" />
<forward name="success" path="/main.jsp" redirect="true" />
</action>
</config>
- ForwardModel
package com.cjq.model;
public class ForwardModel {
private String name;
private String path;
private boolean redirect = true;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public boolean isRedirect() {
return redirect;
}
public void setRedirect(boolean redirect) {
this.redirect = redirect;
}}
- ActionModel
package com.cjq.model;
import java.util.HashMap;
import java.util.Map;public class ActionModel {
private String path;
private String type;
private Map<String, ForwardModel> fMap = new HashMap<>();
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;
}
/**
* 压栈
* @param cjq
*/
public void push(ForwardModel forw