Ajax程序中,ResponseXml输出之改进(利用dom4j)
来源:百度文库 编辑:神马文学网 时间:2024/04/24 17:00:47
一般来说,Ajax程序中,ResponseXml输出一般使用XML拼接,举例如下:
PrintWriter out = response.getWriter();
out.println("");
List types = service.search(predicate);
out.println("passed ");
out.println("查询出的记录数为:" + types.size() + "条 ");
for (InOutType typeTmp : types) {
out.println("");
out.println("" + typeTmp.getName() + " ");
out.println(" ");
}
out.println(" ");
个人认为这样的方式用在小规模(编辑器一屏之内)ResponseXml还行,大规模就容易出错了,它有以下缺点:
1.节点开始如和节点结束 必须成对书写,容易遗忘出错.
2.节点和子节点关系不清晰.
我设想用dom4j来解决这个问题,具体就是把上述代码中的XML转化成一个Document的节点,这样成对书写问题和节点关系的问题都能解决了.
具体的类如下:
package com.sitinspring.nnyy.util;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class XmlAssemble{
private Document document;
private Element root;
public XmlAssemble(String rootName){
document=DocumentHelper.createDocument();
root = document.addElement(rootName);
}
public String getXml(){
return document.asXML();
}
public Element add(String elmName){
return root.addElement(elmName);
}
public Element add(String elmName,String elmTxt){
Element elm=root.addElement(elmName);
elm.setText(elmTxt);
return elm;
}
public Element getRoot() {
return root;
}
}
在这个类的帮助下,原有代码改写为:
List types = service.search(predicate);
XmlAssemble xmlAssemble=new XmlAssemble("response");
xmlAssemble.add("status","passed");
xmlAssemble.add("message","查询出的记录数为:"+ types.size() + "条");
for (InOutType typeTmp : types) {
Element typeElm=xmlAssemble.add("type");
Element nameElm=typeElm.addElement("name");
nameElm.setText(typeTmp.getName());
}
PrintWriter out = response.getWriter();
out.println(xmlAssemble.getXml());
明显,上述代码没有书写问题和节点关系问题,它的书写过程是逐渐深入子节点的,代码连贯性好多了,即使代码超过一屏也能有效控制.
以上.
PrintWriter out = response.getWriter();
out.println("
List
out.println("
out.println("
for (InOutType typeTmp : types) {
out.println("
out.println("
out.println("
}
out.println("
个人认为这样的方式用在小规模(编辑器一屏之内)ResponseXml还行,大规模就容易出错了,它有以下缺点:
1.节点开始如
2.节点和子节点关系不清晰.
我设想用dom4j来解决这个问题,具体就是把上述代码中的XML转化成一个Document的节点,这样成对书写问题和节点关系的问题都能解决了.
具体的类如下:
package com.sitinspring.nnyy.util;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class XmlAssemble{
private Document document;
private Element root;
public XmlAssemble(String rootName){
document=DocumentHelper.createDocument();
root = document.addElement(rootName);
}
public String getXml(){
return document.asXML();
}
public Element add(String elmName){
return root.addElement(elmName);
}
public Element add(String elmName,String elmTxt){
Element elm=root.addElement(elmName);
elm.setText(elmTxt);
return elm;
}
public Element getRoot() {
return root;
}
}
在这个类的帮助下,原有代码改写为:
List
XmlAssemble xmlAssemble=new XmlAssemble("response");
xmlAssemble.add("status","passed");
xmlAssemble.add("message","查询出的记录数为:"+ types.size() + "条");
for (InOutType typeTmp : types) {
Element typeElm=xmlAssemble.add("type");
Element nameElm=typeElm.addElement("name");
nameElm.setText(typeTmp.getName());
}
PrintWriter out = response.getWriter();
out.println(xmlAssemble.getXml());
明显,上述代码没有书写问题和节点关系问题,它的书写过程是逐渐深入子节点的,代码连贯性好多了,即使代码超过一屏也能有效控制.
以上.
Ajax程序中,ResponseXml输出之改进(利用dom4j)
利用matlab输出excel数据文件
利用DWR开始在你的Web应用中使用AJAX
开拓AJAX程序开发捷径
最简单的C++程序/输出Hello
用dom4j建立,修改XML文档,并解决格式化输出和中文问题
用dom4j建立,修改XML文档,并解决格式化输出和中文问题
用dom4j建立,修改XML文档,并解决格式化输出和中文问题
AJAX Activity Indicators AJAX程序loading状态图片集合
掌握 Ajax利用 DOM 进行 Web 响应
AJAX程序loading状态图片集合
利用Spring框架改进J2EE编程
如何利用记忆规律改进网站导航
利用ASP改进文档上载控件
对Java程序多态性支持的改进
对Java程序多态性支持的改进
利用脚本启动java程序
利用脚本启动java程序
用dom4j建立,修改XML文档,并解决格式化输出和中文问题 - pro4j的专栏 - C...
Makefile一问:如何修改.o输出文件的输出路径 Linux/Unix社区 / 程序开...
在Struts中应用Ajax
反思中改进教师管理模式
vb6.0中Spread输出CSV文件
PHP中动态HTML的输出技术