XML建模

本文介绍了XML建模的思路与好处,包括通过分析XML文件结构创建对象,使用工厂模式解析XML并提高代码复用性。以mvc.xml为例,创建了ConfigModel、ActionModel和ForwardModel等实体类,并利用DOM4J和XPath实现建模。建模过程分为面向对象描述XML资源和封装XML内容到对象两个步骤。此外,还展示了对web.xml的建模案例。
摘要由CSDN通过智能技术生成
  • 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值