一.Xml建模之入门

简介: 一.Xml建模之入门

1.为什么要将xml封装为实体

1.在Java中使用XML是非常常见的,因为XML是一种通用的标记语言,用于描述数据。在Java中使用XML的最常见场景之一是使用XML作为配置文件格式。Java程序可以读取XML文件中的配置信息并解析它们。然而,XML文件往往非常复杂,包含许多嵌套元素和属性,因此直接使用XML来读取、操作和修改数据很麻烦。

2.为了使XML数据更易读、易操作和可维护,可以使用Java的XML绑定(JAXB)库,将XML数据映射到Java类上。这样,可以轻松地将XML数据读入Java程序中的对象,并按照需要进行操作。Java类中的属性和方法与XML文件中的元素和属性相对应,这使得代码更易于阅读和维护。

3.Java中封装XML实体的一个重要优点是使代码更灵活、可扩展和容错。封装XML实体可以帮助您在实现特定的业务逻辑时更方便地处理XML数据。通过封装XML实体,开发人员可以灵活地处理XML中的数据模型,使程序更易于扩展和维护。此外,封装XML实体还可以实现更好的错误处理和异常处理机制,提高代码的容错性和鲁棒性。

4.总之,在Java程序中封装XML实体可以提高代码的模块化、可读性和可维护性,同时也可以保证数据的准确性和一致性。

2.封装实体类实例

1.以下进行的代码,均已它为原型去进行演示

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE config
[<!ELEMENT config (action*)>
<!ELEMENT action (forward*)>
<!ATTLIST action 
path CDATA #REQUIRED
type CDATA #IMPLIED
>
]
>
  <!--
    config标签:可以包含0~N个action标签
  -->
<config>
  <!--
    action标签:可以饱含0~N个forward标签 path:以/开头的字符串,并且值必须唯一 非空 ,子控制器对应的路径
    type:字符串,非空,子控制器的完整类名
  -->
  <action path="/registerAction" type="test.action.RegisterAction">
    <forward name="success" path="/index.jsp" redirect="true" />
    <forward name="failed" path="/register.jsp" redirect="false" />
  </action>
  <action path="/registerAction2" type="test.action.RegisterAction">
    <forward name="success" path="/index.jsp" redirect="true" />
    <forward name="failed" path="/register.jsp" redirect="false" />
  </action>
  <action path="/bookAction" type="test.BookAction">
    <forward name="add" path="/bookAdd.jsp" redirect="true" />
    <forward name="del" path="/reg.jsp" redirect="false" />
    <forward name="list" path="/list.jsp" redirect="false" />
    <forward name="upd" path="/login.jsp" redirect="false" />
  </action>
  <action path="/loginAction" type="test.action.LoginAction">
    <forward name="a" path="/index.jsp" redirect="false" />
    <forward name="b" path="/welcome.jsp" redirect="true" />
  </action>
</config>

1.封装ActionModel

package com.niyin.model;
import java.util.HashMap;
import java.util.Map;
public class ActionModel {
  private String path;
  private String gtype;
  private Map<String ,ForwardModel>fmp=new HashMap<String ,ForwardModel>();
  public String getPath() {
    return path;
  }
  public void setPath(String path) {
    this.path = path;
  }
  public String getGtype() {
    return gtype;
  }
  public void setGtype(String gtype) {
    this.gtype = gtype;
  }
  public void push(ForwardModel forwardModel) {
    fmp.put(forwardModel.getName(), forwardModel);
  }
  public  ForwardModel pop(String name) {
    return fmp.get(name);
  }
}

2.封装ConfigModel

package com.niyin.model;
import java.util.HashMap;
import java.util.Map;
public class ConfigModel {
private Map<String,ActionModel>aMap=new HashMap<String,ActionModel>();
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) throws Exception {
  ConfigModel configModel =new ConfigMOdelFactory().build();
  ActionModel actionModel=configModel.pop("/loginAction");
  ForwardModel forwardModel =actionModel.pop("success");
  System.out.println(forwardModel.getPath());
}
}

3.封装ForwardModel

package com.niyin.model;
import java.util.HashMap;
import java.util.Map;
public class ForwardModel {
  private String name;
  private String path;
  private boolean redirect;
  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;
  }
}

3.Xml建模之工厂模式

1.前言

1.XML建模是一种流行的建模方式,它将XML文件中的数据映射到Java对象中。相应地,在Java中实现一些工厂模式可以简化XML建模,并提供更好最佳实践的易读性和可维护性。下面介绍一些Java中使用工厂模式实现的XML建模

1.初识工厂模式

工厂方法模式是一种创建对象的模式,将对象的创建委托给工厂类。工厂方法模式提供了一种灵活的方式来创建对象,而不需要显式地指定对象的类。

在XML建模中,您可以使用工厂方法模式将XML元素和Java类映射到一起。您可以定义一个抽象的工厂类,它具有一个创建对象的接口,然后派生出多个实现类,每个实现类用于创建不同的XML元素和Java类的映射。

2.工厂模式实例:

package com.niyin.model;
import java.io.InputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class ConfigMOdelFactory {
  public static ConfigModel build() throws Exception {
    ConfigModel configModel =new ConfigModel();
    InputStream in = ConfigMOdelFactory.class.getResourceAsStream("/config.xml");
    SAXReader sr =new SAXReader();
    Document doc = sr.read(in);
//    System.out.printl n(doc.asXML());
List<Element> selectNodes = doc.selectNodes("/config/action");
for (Element element : selectNodes) {
//  System.out.println(element.asXML());
  ActionModel actionmodel =new ActionModel();
  actionmodel.setPath(element.attributeValue("path"));
  actionmodel.setGtype(element.attributeValue("type"));
  List<Element> forwardEles = element.selectNodes("forward");
  for (Element forwardEle: forwardEles) {
//    System.out.println(forwardEle.asXML());
ForwardModel forwardModel = new ForwardModel();
forwardModel.setName(forwardEle.attributeValue("name"));
forwardModel.setRedirect(!"false".equals(forwardEle.attributeValue("redirect")));
  actionmodel.push(forwardModel);;
  }
  configModel.push(actionmodel);
}
    return configModel;
  }
  public static void main(String[] args) throws Exception {
    ConfigMOdelFactory.build();
  }
}


目录
相关文章
|
6月前
|
XML 设计模式 开发框架
J2EE(xml建模)
J2EE(xml建模)
39 0
|
7月前
|
XML 存储 设计模式
XML系列(三)之 XML建模
XML系列(三)之 XML建模
|
6月前
|
XML 存储 开发框架
J2EE之XML建模
J2EE之XML建模
27 0
|
4天前
|
XML 安全 Java
从零手写实现 apache Tomcat-02-web.xml 入门详细介绍
`web.xml`是Java Web应用的核心配置文件,描述应用工作方式。它包含Servlet、Filter和Listener的定义。例如,示例展示了如何配置名为`my`的Servlet处理`/my`请求,`LoggingFilter`拦截所有请求,以及`MyServletContextAttrListener`监听应用事件。`web.xml`是服务器理解应用结构与行为的指南。迷你版Tomcat实现——mini-cat(开源:https://github.com/houbb/minicat)。
|
5月前
|
XML Java 数据库连接
Spring Data JPA入门简解与XML配置实现
Spring Data JPA入门简解与XML配置实现
106 0
|
5月前
|
XML 存储 设计模式
xml建模
xml建模
30 0
|
5月前
|
XML 存储 数据库
xml建模----详细完整,易懂结合代码分析
xml建模----详细完整,易懂结合代码分析
|
5月前
|
XML 数据格式
XML-----建模
XML-----建模
23 0
|
5月前
|
XML 存储 设计模式
XML建模
XML建模
28 0
|
6月前
|
XML 存储 Java
XML之建模
XML之建模
39 0