Struts中利用action来输出xml文件
应一个同事的要求,要利用strtus的Action将一个数据库表的数据输出为xml格式的数据,方便导入使用。经研究Action还真能办到,实际上不是Action的功劳,而是JDOM的功劳,不说那么多了,给大家分享一下。 我有一个测试表,有两个字段,一个是用户名,一个是密码,现将这个表的数据全部输出为xml格式的。首先给出我的Action,代码如下: package com.yourcompany.struts.action;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;
import com.yourcompany.struts.form.User;
public class DisplayALL extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
DataSource ds = getDataSource(request, "s9");
Connection conn = ds.getConnection();
Statement stmt = null;
ResultSet rs = null;
response.setContentType("text/xml;charset=utf-8");
Element rootElement = new Element("users");
Document users = new Document(rootElement);
try {
String ls_sql = "select * from dd ";
stmt = conn.createStatement();
rs = stmt.executeQuery(ls_sql);
while (rs.next()) {
Element user = new Element("user");
user.setAttribute("username", rs.getString(1));
user.setAttribute("password", rs.getString(2));
rootElement.addContent(user);
}
XMLOutputter xout=new XMLOutputter();
xout.output(users,response.getWriter());
} c
相关文档:
使用VS2005工具XSD.exe(SDK\v2.0\Bin\xsd.exe)自动生成实体类:
xsd /c /namespace:myCompany /language:CS temp1.xsd
也可以生成DataSet类型的类:
xsd /dataset /language:CS temp1.xsd
( 类文件和XSD之间可以相互转换,也就是说,你也可以先生成类,然后自动生成XSD)
自动读取XML数据 ......
/*
数据库查询XML结构,FOR XML PATH 语句的应用
*/
FOR XML PATH 语句的应用:
CREATE TABLE TempTable(UserID int , UserName nvarchar(50));
insert into TempTable (UserID,UserName) values (1,'a')
insert into TempTable (UserID,UserName) values (2,'b')
select UserID,UserName from TempTable FOR ......
// MsXmlTest.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "MsXmlTest.h"
#include <clocale>
#include "comutil.h"
#import "msxml4.dll"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// 唯一的应用程序对象
CWinApp theApp;
using namespace std;
void WritePerson(MSXML2: ......
string GetXmlByDataTable()
{
string xmlstr;
string sql = "select top 10 * from BasicInfo";
DataTable dt = idb.ReturnDataTable(sql);
&nb ......
本文共两个文件:translate.mxml 和 mapmarking.xml
1、translate.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="librar ......