什么是建模,就是将指定的xml字符串当作对象来操作,如果说当对一个指定的xml格式字符串完成了建模操作,只需要调用指定的方法就可以完成早已经预定的字符串来获取
*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标签:可以包含0~N个action标签 -->
<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" redirect="true" />
</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>
ConfigModel
代码
package model;
import java.util.HashMap;
import java.util.Map;
public class ConfigModel {
private Map<String, ActionModel> aMap=new HashMap<>();
/**
* 压栈 堆栈
*/
public void push(ActionModel actionModel) {
aMap.put(actionModel.getPath(),actionModel);
}
public ActionModel pop(String path) {
return aMap.get(path);
}
public static void main(String[] args) {
ConfigModel configModel=new ConfigModel();
ActionModel actionModel=configModel.pop("/loginAction");
System.out.println(actionModel.getType());
}
}
1.2 ActionModel
代码如下
package model;
import java.util.HashMap;
import java.util.Map;
public class ActionModel {
// <action path="/loginAction" type="test.LoginAction">
// <forward name="failed" path="/login.jsp" redirect="false" />
// <forward name="success" path="/main.jsp" redirect="true" />
//</action>
private String path;
private String type;
private Map<String, ForwardModel> fMap=new HashMap<>();
public String getPath() {
return pa