您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)報(bào)表設(shè)計(jì)器中使用spring框架實(shí)現(xiàn)自定義數(shù)據(jù)集,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
spring是一個(gè)開(kāi)源框架,是為了解決企業(yè)應(yīng)用程序開(kāi)發(fā)復(fù)雜性而創(chuàng)建的。在 web 開(kāi)發(fā)環(huán)境中經(jīng)常會(huì)與 struts、hibernate聯(lián)合起來(lái)使用,進(jìn)行規(guī)范的框架結(jié)構(gòu)開(kāi)發(fā)。潤(rùn)乾中的二次開(kāi)發(fā)也可以與 SSH 框架相結(jié)合部署到 web 項(xiàng)目中。本文介紹在設(shè)計(jì)時(shí)沒(méi)有啟動(dòng) web 服務(wù),在設(shè)計(jì)器中使用 spring 的方式來(lái)實(shí)現(xiàn)自定義數(shù)據(jù)集。
實(shí)現(xiàn)思路:編寫(xiě)兩個(gè)自定義數(shù)據(jù)集,一個(gè)在設(shè)計(jì)器中使用,一個(gè)在 web 項(xiàng)目中使用,在設(shè)計(jì)器中使用的類需要編寫(xiě)臨時(shí)加載 spring 框架配置文件的代碼,啟動(dòng) spring 框架。Web 項(xiàng)目中的則不需要編寫(xiě),可直接與 struts 整合,通過(guò)監(jiān)聽(tīng)器的方式啟動(dòng) struts 框架時(shí)同時(shí)啟動(dòng) spring 框架。
第一步:拷貝 spring 框架 jar 包。
使用 spring 的注入方式編寫(xiě)一個(gè)簡(jiǎn)單的自定義數(shù)據(jù)集,首先需要將 spring 的 IOC 核心容器和對(duì) web 支持的 jar 包拷貝到設(shè)計(jì)器的 lib 目錄下(\reportHome\designer\web\WEB-INF\lib)。
第二步:編寫(xiě)一個(gè)簡(jiǎn)單的自定義數(shù)據(jù)集。
public class Test { public DataSet getDataSet(Context ctx, DataSetConfig dsc, boolean retrieve) { DataSet ds = new DataSet(”ds1″);// 定義數(shù)據(jù)集名稱 ds.addCol(”產(chǎn)品ID”);//定義顯示列 ds.addCol(”產(chǎn)品名稱”); List col1 = new ArrayList();// 第一列模擬數(shù)據(jù)集合 for (int i = 1; i <= 4; i++) { col1.add(i); } List col2 = new ArrayList();// 第二列模擬數(shù)據(jù)集合 col2.add(”struts1.2″); col2.add(”hibernate3.1″); col2.add(”spring2.0″); col2.add(”runqian4.2.5″); // 設(shè)置數(shù)據(jù) for (int i = 0; i < col1.size(); i++) { Row row = ds.addRow(); row.setData(1, col1.get(i));// 產(chǎn)品ID放到第一列的位置 row.setData(2, col2.get(i));// 產(chǎn)品名稱放到第二列的位置 } return ds; } }
第三步:進(jìn)行 spring 注入。
將之前編寫(xiě)的自定義數(shù)據(jù)集的類,通過(guò) spring 注入的形式來(lái)實(shí)現(xiàn),將 spring 的配置文件 applicationContext.xml 放置在 classpath 中(也就是設(shè)計(jì)器中的 \reportHome\designer\web\WEB-INF\classes 目錄下)。使用 ApplicationContext 這個(gè)接口下的一個(gè)實(shí)現(xiàn)類 ClassPathXmlApplicationContext 來(lái)加載配置文件,需要注意的是,這里可以加載多個(gè)配置文件,所以是以數(shù)組形勢(shì)傳進(jìn)的。在 applicationContext.xml 中添加節(jié)點(diǎn),配置 spring 注入的代碼,在類中使用 getBean() 方法,根據(jù) xml 中 bean 節(jié)點(diǎn)的 id 屬性注入。返回的就是該類中定義的這個(gè)成員變量了,從而實(shí)現(xiàn)了 spring 注入功能。
Spring 配置文件 applicationContext.xml 代碼如下:
<?xml version=”1.0″ encoding=”UTF-8″?> < beans xmlns=”http://www.springframework.org/schema/beans” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd”> <bean id=”Test” class=” com.runqian.Test”></bean> < bean id=”SpringTest” class=”com.runqian.SpringTest “> < property name=”test”> < ref bean=”Test” /> < /property> < /bean> < /beans><?xml version=”1.0″ encoding=”UTF-8″?>
Spring 調(diào)用類代碼如下:
public class SpringTest implements IDataSetFactory { private Test test; public SpringTest () { } public void setTest(Test test) { this.test = test; } public DataSet createDataSet(Context ctx, DataSetConfig dsc, boolean retrieve) { ApplicationContext cxt = new ClassPathXmlApplicationContext( new String\[\] { “applicationContext.xml” });//手動(dòng)加載配置文件 test = (Test) cxt.getBean(”Test”);//加載之前定義好的自定義數(shù)據(jù)集類 return test.getDataSet(ctx, dsc, retrieve); } }
將之前編寫(xiě)的自定義數(shù)據(jù)集和 spring 調(diào)用類編譯后,把.class 文件放到設(shè)計(jì)器中的 \reportHome\designer\web\WEB-INF\classes 目錄下 (主意加上包文件)
第四步:?jiǎn)?dòng)設(shè)計(jì)器實(shí)現(xiàn)自定義數(shù)據(jù)集。
打開(kāi)設(shè)計(jì)器,選擇自定義數(shù)據(jù)集,填入 spring 調(diào)用類的包名和類名
顯示出之前類中定義的列名,生成數(shù)據(jù)集成功
這樣就實(shí)現(xiàn)了不啟動(dòng) web 服務(wù),在設(shè)計(jì)器中使用 spring 框架實(shí)現(xiàn)自定義數(shù)據(jù)集了。
以上就是報(bào)表設(shè)計(jì)器中使用spring框架實(shí)現(xiàn)自定義數(shù)據(jù)集,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。