我使用的是SpringSource ToolSuite开发工具(内核还是Eclipse)。

1.首先使用iReport工具自己做一个.jrxml结尾的报表文件。

2.配置好struts2的开发环境。

直接粘贴代码吧:

下面是Maven工程的路径

pom.xml(自动加载jar包的文件):

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.banclogix.jasper</groupId>
<artifactId>jasper</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>jasper Maven Webapp</name>
<url>http://maven.apache.org</url>
<repositories>
<repository>
<id>jasperreports</id>
<url>http://jasperreports.sourceforge.net/maven2</url>
</repository>
</repositories>

<dependencies>
<!-- <dependency>
<groupId>ar.com.fdvs</groupId>
<artifactId>DynamicJasper</artifactId>
<version>3.0.13</version>
</dependency>
-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.2.1.1</version>
</dependency>

<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1-alpha-1</version>
</dependency>

<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.10.0.GA</version>
<scope>runtime</scope>
</dependency>

<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.2.4</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.0.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>2.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>1.7</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>1.7.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.6</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>jfree</groupId>
<artifactId>jcommon</artifactId>
<version>1.0.15</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>gnujaxp</groupId>
<artifactId>gnujaxp</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.0.12</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>gnujaxp</groupId>
<artifactId>gnujaxp</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<finalName>jasper</finalName>
</build>
</project>

其他的Jar包:

struts.xml文件内容:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />
<constant name="struts.action.extension" value="action"/>

<include file="example.xml"/>

<!-- <package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index" />
<action name="index">
<result type="redirectAction">
<param name="actionName">HelloWorldAction</param>
<param name="namespace">/example</param>
</result>
</action>
</package> -->

<!-- Add packages here -->

</struts>

-------------------------------------------------------------------

example.xml文件内容:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<package name="export" namespace="/export" extends="struts-default">
<action name="export_*" class="com.dmf.action.ExampleAction" method="{1}">
<result name="export_html">/export/export_html.jsp?currency=${currency}</result>
<!-- ../reports/image?image=px -->
<!-- ../reports/px -->
<result name="image"></result>
</action>

<!-- <action name="Login_*" method="{1}" class="example.Login">
<result name="input">/example/Login.jsp</result>
<result type="redirectAction">Menu</result>
</action>

<action name="*" class="example.ExampleSupport">
<result>/example/{1}.jsp</result>
</action> -->

<!-- Add actions here -->
</package>

<package name="default"
extends="struts-default,jasperreports-default">
<action name="PDF" class="com.dmf.action.JasperAction">
<result name="success" type="jasper">
<param name="location">
/reports/compiled_KDF_Report07.jasper
</param>
<param name="dataSource">Quotes</param>
<param name="format">PDF</param>
</result>
</action>
<action name="HTML" class="com.dmf.action.JasperAction">
<result name="success" type="jasper">
<param name="location">
/reports/compiled_KDF_Report07.jasper
</param>
<param name="dataSource">Quotes</param>
<param name="format">HTML</param>
</result>
</action>
<action name="XML" class="com.dmf.action.JasperAction">
<result name="success" type="jasper">
<param name="location">
/reports/compiled_KDF_Report07.jasper
</param>
<param name="dataSource">Quotes</param>
<param name="format">XML</param>
</result>
</action>
<action name="CSV" class="com.dmf.action.JasperAction">
<result name="success" type="jasper">
<param name="location">
/reports/compiled_KDF_Report07.jasper
</param>
<param name="dataSource">Quotes</param>
<param name="format">CSV</param>
</result>
</action>
<action name="XLS" class="com.dmf.action.JasperAction">
<result name="success" type="jasper">
<param name="location">
/reports/compiled_KDF_Report07.jasper
</param>
<param name="dataSource">Quotes</param>
<param name="format">XLS</param>
</result>
</action>
<action name="RTF" class="com.dmf.action.JasperAction">
<result name="success" type="jasper">
<param name="location">
/reports/compiled_KDF_Report07.jasper
</param>
<param name="dataSource">Quotes</param>
<param name="format">RTF</param>
</result>
</action>
</package>
</struts>

------------------------------------------------------------------------

database.properties:

password=pass
url=jdbc/:jtds/:sqlserver/://yourIP:1433/databaseName
username=use
driver_name=net.sourceforge.jtds.jdbc.Driver
close_time=1200000

-------------------------------------------------------------------

JasperAction.java:

package com.dmf.action;

import java.io.File;
import java.util.List;

import net.sf.jasperreports.engine.JasperCompileManager;

import org.apache.struts2.ServletActionContext;

import com.dmf.db.DataBaseLayer;
import com.dmf.dto.Quote;
import com.opensymphony.xwork2.ActionSupport;

public class JasperAction extends ActionSupport {

private static final long serialVersionUID = 1L;
// private List<PeopleBean> myList;
private List<Quote> quotes;
private DataBaseLayer dataBaseLayer;

public String execute() throws Exception {
//From DB
dataBaseLayer = DataBaseLayer.getInstance();
quotes = dataBaseLayer.getQuotes();

try {
String reportSource = ServletActionContext.getServletContext()
.getRealPath("/reports/KDF_Report07.jrxml");
File parent = new File(reportSource).getParentFile();

JasperCompileManager.compileReportToFile(reportSource, new File(
parent, "compiled_KDF_Report07.jasper")
.getAbsolutePath());

} catch (Exception e) {
e.printStackTrace();
return ERROR;
}
return SUCCESS;
}

public List getQuotes() {
return quotes;
}

}

---------------------------------------------------------------------

Constants.java:

public class Constants {
public static final String DATABASEFILEPATH = "D://workspace//jasper//src//main//resources//database.properties";
}

---------------------------------------------------------------------------

ConfigReader.java:

package com.dmf.db;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

import org.apache.log4j.Logger;

/**read from file
* @author limx */
public class ConfigReader {
private static Logger logger = Logger.getLogger(ConfigReader.class);
private static ConfigReader configReader;
private Properties prop;
private FileInputStream fis;

public ConfigReader(){

}

/**
* open properties file
* @param fileName
*/
public void init(String path){
if(prop == null)
prop = new Properties();
try {
fis = new FileInputStream(path);
prop.load(fis);
} catch (FileNotFoundException e) {
logger.info("3 some error:"+e);
}
catch (IOException e) {
logger.info("4 some error:"+e);
}
}

/**Got a single class
*/
public static synchronized ConfigReader getInstance(){
if(configReader == null){
configReader = new ConfigReader();
}
return configReader;
}

/**Got a item from config file
*/
public String getConfigItem(String key,String defaultValue){
return prop.getProperty(key, defaultValue);
}

}

----------------------------------------------------------------------------------

ConnBean.java:

package com.dmf.db;

/**
* @author limx
*/
public class ConnBean {
private String driverName;
private String url;
private String username;
private String password;
public String getDriverName() {
return driverName;
}
public void setDriverName(String driverName) {
this.driverName = driverName;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

}

------------------------------------------------------------------

ConnectionPool.java

package com.dmf.db;

import java.sql.*;
import java.lang.reflect.*;
import java.util.*;
import java.io.*;

import org.apache.log4j.Logger;

import com.dmf.common.Constants;

@SuppressWarnings("unchecked")
/**@author limx
* */
public class ConnectionPool {
private static Logger logger = Logger.getLogger(ConnectionPool.class);
@SuppressWarnings("rawtypes")
private static LinkedList m_notUsedConnection = new LinkedList();
@SuppressWarnings("rawtypes")
private static HashSet m_usedUsedConnection = new HashSet();
private static String m_url = "";
private static String m_user = "";
private static String m_password = "";
private static String m_driver_name = "";
private static long close_time = 10000;
static final boolean DEBUG = true;
static private long m_lastClearClosedConnection = System.currentTimeMillis();

static {
initConnectionPool();
initDriver();
}

private ConnectionPool() {
}

private static void initConnectionPool(){
ConfigReader configReader = ConfigReader.getInstance();
configReader.init(Constants.DATABASEFILEPATH);
ConnectionPool.setClose_time(Long.parseLong(configReader.getConfigItem("close_time", "120000000")));
ConnectionPool.setPassword(configReader.getConfigItem("password", "kdf"));
ConnectionPool.setUrl(configReader.getConfigItem("url", "kdf"));
ConnectionPool.setUser(configReader.getConfigItem("username", "kdf"));
ConnectionPool.setM_driver_name(configReader.getConfigItem("driver_name", ""));
}

private static void initDriver() {
Driver driver = null;
// load driver
try {
driver = (Driver) Class.forName(ConnectionPool.getM_driver_name())
.newInstance();
installDriver(driver);
} catch (Exception e) {
}
}

public static void installDriver(Driver driver) {
try {
DriverManager.registerDriver(driver);
} catch (Exception e) {
System.out.println("ConnetionPool:installDriver");
e.printStackTrace();
}
}

@SuppressWarnings("rawtypes")
public static synchronized Connection getConnection() {
clearClosedConnection();
while (m_notUsedConnection.size() > 0) {
try {
ConnectionWrapper wrapper = (ConnectionWrapper) m_notUsedConnection
.removeFirst();
if (wrapper.connection.isClosed()) {
continue;
}
m_usedUsedConnection.add(wrapper);
if (DEBUG) {
wrapper.debugInfo = new Throwable(
"Connection initial statement");
}
return wrapper.connection;
} catch (Exception e) {
}
}
int newCount = getIncreasingConnectionCount();
LinkedList list = new LinkedList();
ConnectionWrapper wrapper = null;
for (int i = 0; i < newCount; i++) {
wrapper = getNewConnection();
if (wrapper != null) {
list.add(wrapper);
}
}
if (list.size() == 0) {
return null;
}
wrapper = (ConnectionWrapper) list.removeFirst();
m_usedUsedConnection.add(wrapper);

m_notUsedConnection.addAll(list);
list.clear();

return wrapper.connection;
}

private static ConnectionWrapper getNewConnection() {
try {
Connection con = DriverManager.getConnection(m_url, m_user,
m_password);
ConnectionWrapper wrapper = new ConnectionWrapper(con);
return wrapper;
} catch (Exception e) {
String message = "DataBaseLayer:->getNewConnection failed!";
logger.error(message+" "+e.toString());
}
return null;
}

static synchronized void pushConnectionBackToPool(ConnectionWrapper con) {
boolean exist = m_usedUsedConnection.remove(con);
if (exist) {
m_notUsedConnection.addLast(con);
}
}

@SuppressWarnings("rawtypes")
public static int close() {
int count = 0;

Iterator iterator = m_notUsedConnection.iterator();
while (iterator.hasNext()) {
try {
((ConnectionWrapper) iterator.next()).close();
count++;
} catch (Exception e) {
}
}
m_notUsedConnection.clear();

iterator = m_usedUsedConnection.iterator();
while (iterator.hasNext()) {
try {
ConnectionWrapper wrapper = (ConnectionWrapper) iterator.next();
wrapper.close();
if (DEBUG) {
wrapper.debugInfo.printStackTrace();
}
count++;
} catch (Exception e) {
}
}
m_usedUsedConnection.clear();

return count;
}

@SuppressWarnings("rawtypes")
private static void clearClosedConnection() {
long time = System.currentTimeMillis();
// sometimes user change system time,just return
if (time < m_lastClearClosedConnection) {
time = m_lastClearClosedConnection;
return;
}
// no need check very often
if (time - m_lastClearClosedConnection < close_time) {
return;
}
m_lastClearClosedConnection = time;

// begin check
Iterator iterator = m_notUsedConnection.iterator();
while (iterator.hasNext()) {
ConnectionWrapper wrapper = (ConnectionWrapper) iterator.next();
try {
if (wrapper.connection.isClosed()) {
iterator.remove();
}
} catch (Exception e) {
iterator.remove();
if (DEBUG) {
System.out
.println("connection is closed, this connection initial StackTrace");
wrapper.debugInfo.printStackTrace();
}
}
}

// make connection pool size smaller if too big
int decrease = getDecreasingConnectionCount();
if (m_notUsedConnection.size() < decrease) {
return;
}

while (decrease-- > 0) {
ConnectionWrapper wrapper = (ConnectionWrapper) m_notUsedConnection
.removeFirst();
try {
wrapper.connection.close();
} catch (Exception e) {
}
}
}

/**
* get increasing connection count, not just add 1 connection
*
* @return count
*/
public static int getIncreasingConnectionCount() {
int count = 1;
int current = getConnectionCount();
count = current / 4;
if (count < 1) {
count = 1;
}
return count;
}

/**
* get decreasing connection count, not just remove 1 connection
*
* @return count
*/
public static int getDecreasingConnectionCount() {
int current = getConnectionCount();
if (current < 10) {
return 0;
}
return current / 3;
}

public synchronized static void printDebugMsg() {
printDebugMsg(System.out);
}

@SuppressWarnings({ "unused", "rawtypes" })
public synchronized static void printDebugMsg(PrintStream out) {
if (DEBUG == false) {
return;
}
StringBuilder msg = new StringBuilder();
msg.append("debug message in " + ConnectionPool.class.getName());
msg.append("/r/n");
msg.append("total count is connection pool: " + getConnectionCount());
msg.append("/r/n");
msg.append("not used connection count: " + getNotUsedConnectionCount());
msg.append("/r/n");
msg.append("used connection, count: " + getUsedConnectionCount());
out.println(msg);
Iterator iterator = m_usedUsedConnection.iterator();
while (iterator.hasNext()) {
ConnectionWrapper wrapper = (ConnectionWrapper) iterator.next();
wrapper.debugInfo.printStackTrace(out);
}
out.println();
}

public static synchronized int getNotUsedConnectionCount() {
return m_notUsedConnection.size();
}

public static synchronized int getUsedConnectionCount() {
return m_usedUsedConnection.size();
}

public static synchronized int getConnectionCount() {
return m_notUsedConnection.size() + m_usedUsedConnection.size();
}

public static String getUrl() {
return m_url;
}

public static void setUrl(String url) {
if (url == null) {
return;
}
m_url = url.trim();
}

public static String getUser() {
return m_user;
}

public static void setUser(String user) {
if (user == null) {
return;
}
m_user = user.trim();
}

public static String getPassword() {
return m_password;
}

public static void setPassword(String password) {
if (password == null) {
return;
}
m_password = password.trim();
}

public static long getClose_time() {
return close_time;
}

public static void setClose_time(long close_time) {
ConnectionPool.close_time = close_time;
}

public static String getM_driver_name() {
return m_driver_name;
}

public static void setM_driver_name(String m_driver_name) {
ConnectionPool.m_driver_name = m_driver_name;
}

}

class ConnectionWrapper implements InvocationHandler {
private final static String CLOSE_METHOD_NAME = "close";
public Connection connection = null;
private Connection m_originConnection = null;
public long lastAccessTime = System.currentTimeMillis();
Throwable debugInfo = new Throwable("Connection initial statement");

ConnectionWrapper(Connection con) {
this.connection = (Connection) Proxy.newProxyInstance(con.getClass()
.getClassLoader(), new Class[]{Connection.class}, this);
//.getClassLoader(), con.getClass().getInterfaces(), this);
m_originConnection = con;
}

void close() throws SQLException {
m_originConnection.close();
}

public Object invoke(Object proxy, Method m, Object[] args)
throws Throwable {
Object obj = null;
if (CLOSE_METHOD_NAME.equals(m.getName())) {
ConnectionPool.pushConnectionBackToPool(this);
} else {
obj = m.invoke(m_originConnection, args);
}
lastAccessTime = System.currentTimeMillis();
return obj;
}
}

---------------------------------------------------------------------------------

DatabaseLayer.java:

package com.dmf.db;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;

import com.dmf.dto.Quote;

/** database operation
* @author limx
*/
public class DataBaseLayer {
private static Logger logger = Logger.getLogger(DataBaseLayer.class);
private static DataBaseLayer db = null;
private Connection conn = null;

synchronized public static DataBaseLayer getInstance(){
if (db == null)
db = new DataBaseLayer();
return db;
}

/** connection
*/
private DataBaseLayer(){
try{
conn = ConnectionPool.getConnection();
}catch(Exception e){
logger.error("DataBaseLayer:->getConnection failed!");
}
}

// private PreparedStatement prstForSaveQuote = null;
// private PreparedStatement getPrstForSelectQuote() throws SQLException {
//
// if (prstForSaveQuote == null)
// prstForSaveQuote = conn.prepareStatement(
// "select top 10 symbol,bid,ask from quote");
// return prstForSaveQuote;
// }

public List<Quote> getQuotes(){
List<Quote> quotes = null;
PreparedStatement prst = null;
ResultSet rs;
String sql = "select top 50 symbol,bid,ask,quotetime from quote";
try {
prst = conn.prepareStatement(sql);
rs = prst.executeQuery();
Quote quote = null;
if(quotes == null)
quotes = new ArrayList<Quote>();
while(rs.next()){
quote = new Quote();
quote.setBid(rs.getBigDecimal("bid"));
quote.setAsk(rs.getBigDecimal("ask"));
quote.setSymbol(rs.getString("symbol"));
quote.setQuote_time(rs.getTimestamp("quotetime"));
quotes.add(quote);
quote = null;
}
} catch (SQLException e) {
return new ArrayList<Quote>();
}

return quotes;
}

public static void main(String[] args){
DataBaseLayer db = DataBaseLayer.getInstance();
System.out.println(db.getQuotes().size());
}

}
--------------------------------------------------------------------------------------------

Quote.java:

package com.dmf.dto;

import java.math.BigDecimal;
import java.sql.Timestamp;

/**
* @author limx
*/
public class Quote {
private String symbol;
private BigDecimal bid;
private BigDecimal ask;
//private String data_source;
private Timestamp quote_time;

public Quote(){

}

public Quote(String symbol, BigDecimal bid, BigDecimal ask, Timestamp quote_time){
this.symbol = symbol;
this.bid = bid;
this.ask = ask;
//this.data_source = data_source;
this.quote_time = quote_time;
}

public String getSymbol() {
return symbol;
}
public void setSymbol(String symbol) {
this.symbol = symbol;
}
public BigDecimal getBid() {
return bid;
}
public void setBid(BigDecimal bid) {
this.bid = bid;
}
public BigDecimal getAsk() {
return ask;
}
public void setAsk(BigDecimal ask) {
this.ask = ask;
}
// public String getData_source() {
// return data_source;
// }
// public void setData_source(String data_source) {
// this.data_source = data_source;
// }
public Timestamp getQuote_time() {
return quote_time;
}
public void setQuote_time(Timestamp quote_time) {
this.quote_time = quote_time;
}

}
-------------------------------------------------------------------------------

index.jsp:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Welcome</title>
</head>

<body style="text-align:center;">

<br/>
<font size="6" color="blue" style="font-weight:bloder;">Export Different Format File By *.jrxml File.</font>
<hr/>
<a href="HTML.action" target="_blank">From iReport.jrxml export [HTML]</a>
<br>
<a href="PDF.action" target="_blank">From iReport.jrxml export [PDF]</a>
<br>
<a href="XML.action" target="_blank">From iReport.jrxml export [XML]</a>
<br>
<a href="CSV.action" target="_blank">From iReport.jrxml export [CSV]</a>
<br>
<a href="XLS.action" target="_blank">From iReport.jrxml export [XLS]</a>
<br>
<a href="RTF.action" target="_blank">From iReport.jrxml export [RTF]</a>
<hr/>
</body>
</html>

-----------------------------------------------------------------------------------

web.xml:

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
<display-name>Struts2 Jasper Demo</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
-------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------

KDF_Report07.jrxml:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="KDF_Report07" language="groovy" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="30" rightMargin="30" topMargin="20" bottomMargin="20">
<property name="ireport.scriptlethandling" value="0"/>
<property name="ireport.encoding" value="UTF-8"/>
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<import value="net.sf.jasperreports.engine.*"/>
<import value="java.util.*"/>
<import value="net.sf.jasperreports.engine.data.*"/>
<parameter name="rptMan" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA["sterning"]]></defaultValueExpression>
</parameter>
<parameter name="rptDate" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA["2008-01-12"]]></defaultValueExpression>
</parameter>
<field name="symbol" class="java.lang.String">
<fieldDescription><![CDATA[symbol]]></fieldDescription>
</field>
<field name="bid" class="java.math.BigDecimal">
<fieldDescription><![CDATA[bid]]></fieldDescription>
</field>
<field name="ask" class="java.math.BigDecimal">
<fieldDescription><![CDATA[ask]]></fieldDescription>
</field>
<field name="quote_time" class="java.sql.Timestamp">
<fieldDescription><![CDATA[quote_time]]></fieldDescription>
</field>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="62" splitType="Stretch">
<staticText>
<reportElement key="staticText-1" x="7" y="0" width="517" height="57" forecolor="#FF0033"/>
<box>
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center">
<font size="36" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
</textElement>
<text><![CDATA[Struts2+JasperReports+MSSQL]]></text>
</staticText>
<line>
<reportElement key="line-4" x="-30" y="61" width="594" height="1"/>
</line>
</band>
</title>
<pageHeader>
<band height="13" splitType="Stretch">
<line>
<reportElement key="line-3" x="-29" y="12" width="592" height="1"/>
</line>
</band>
</pageHeader>
<columnHeader>
<band height="45" splitType="Stretch">
<staticText>
<reportElement key="staticText-2" x="13" y="5" width="95" height="33"/>
<box>
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement>
<font size="24" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
</textElement>
<text><![CDATA[Symbol]]></text>
</staticText>
<staticText>
<reportElement key="staticText-3" x="140" y="5" width="105" height="33"/>
<box>
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement>
<font size="24" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
</textElement>
<text><![CDATA[Bid]]></text>
</staticText>
<staticText>
<reportElement key="staticText-4" x="266" y="5" width="100" height="33"/>
<box>
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement>
<font size="24" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
</textElement>
<text><![CDATA[Ask]]></text>
</staticText>
<staticText>
<reportElement key="staticText-5" x="393" y="10" width="124" height="33"/>
<box>
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement>
<font size="24" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
</textElement>
<text><![CDATA[QuoteTime]]></text>
</staticText>
<line>
<reportElement key="line-2" x="-30" y="43" width="596" height="1"/>
</line>
</band>
</columnHeader>
<detail>
<band height="39" splitType="Stretch">
<textField isBlankWhenNull="false">
<reportElement key="textField-1" x="13" y="7" width="95" height="30"/>
<box>
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement>
<font size="14" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{symbol}]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="false">
<reportElement key="textField-2" x="140" y="5" width="105" height="29"/>
<box>
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement>
<font size="14" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
</textElement>
<textFieldExpression class="java.math.BigDecimal"><![CDATA[$F{bid}]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="false">
<reportElement key="textField-3" x="266" y="5" width="100" height="28"/>
<box>
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement>
<font size="14" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
</textElement>
<textFieldExpression class="java.math.BigDecimal"><![CDATA[$F{ask}]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="false">
<reportElement key="textField-4" x="393" y="5" width="124" height="30"/>
<box>
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement>
<font size="14" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
</textElement>
<textFieldExpression class="java.sql.Timestamp"><![CDATA[$F{quote_time}]]></textFieldExpression>
</textField>
<line>
<reportElement key="line-1" x="-30" y="37" width="593" height="1"/>
</line>
</band>
</detail>
<columnFooter>
<band splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="50" splitType="Stretch">
<textField isBlankWhenNull="false">
<reportElement key="textField-8" x="98" y="18" width="138" height="23"/>
<box>
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Right">
<font size="12" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA["page " + String.valueOf($V{PAGE_NUMBER}) + " of"]]></textFieldExpression>
</textField>
<textField evaluationTime="Report" isBlankWhenNull="false">
<reportElement key="textField-9" x="239" y="18" width="83" height="23"/>
<box>
<topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement>
<font size="12" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[" " + String.valueOf($V{PAGE_NUMBER})]]></textFieldExpression>
</textField>
</band>
</pageFooter>
<lastPageFooter>
<band height="50" splitType="Stretch"/>
</lastPageFooter>
<summary>
<band splitType="Stretch"/>
</summary>
</jasperReport>
----------------------------------------------------------------------------------------

参考网址:

http://www.blogjava.net/sterning/archive/2008/01/02/172317.html

OK 就是这些东西了,你只要按照这个区部署就可以了

更多相关文章

  1. [SQL Server] 数据库日志文件自动增长导致连接超时的分析
  2. 如何将MDB (Access)文件转换为MySQL(或纯SQL文件)?
  3. 写SQL语句,如何找到部分字段内容一样的两条记录?实现调货的功能
  4. mysql 导出数据到txt文件
  5. MySQL——关于MySQL分组查询group by和order by获取最新时间内容
  6. linux时间与网络同步 // tomcat、redis、mysql等开机启动//远程
  7. SQL SERVER日志文件已满处理方法
  8. MySQL——问题:mysql(5.7版本)目录下没有data文件夹
  9. 如何将frm格式MYD格式MYI格式文件导入MySQL中

随机推荐

  1. Android几款著名的ActiveSync客户端
  2. android 在SD卡创建文件夹
  3. Android 通信录中的联系人操作
  4. Android SDK Tools R15 发布
  5. android 复制、粘贴文字
  6. android 新手学习笔记 点击事件
  7. Spinner下拉位置处理
  8. JAVA设计模式之Template method
  9. 教你如何用最新的技术快速开发一个完整的
  10. 【Android】性能分析工具:开篇