幸せのちから

          平凡的世界
          看似平常實崎嶇
          成如容易卻艱辛

          Chapter 7. ExportTag

          Chapter 7. ExportTag

          7.1. 引言

          eXtremeTable具有導出不同格式文件的功能,導出的數據為過濾和排序后的所有結果集, 分頁不會影響返回的結果集。換句話說,如果表數據分多頁顯示,那么所有頁的數據都將被導出。 導出的格式為Microsoft Excel (OpenOffice Calc)、PDF和CSV。

          使用ExportXlsTag導出Microsoft Excel (OpenOffice Calc):

          <ec:table
          items="presidents"
          action="${pageContext.request.contextPath}/presidents.run"
          />
          <ec:exportXls
          fileName="presidents.xls"
          tooltip="Export Excel"/>
          ...
          </ec:table>

          使用ExportPdfTag導出PDF。所有要做的就是指定fileName屬性和一些樣式屬性:

          <ec:table
          items="presidents"
          action="${pageContext.request.contextPath}/presidents.run"
          />
          <ec:exportPdf
          fileName="presidents.pdf"
          tooltip="Export PDF"
          headerColor="blue"
          headerBackgroundColor="red"
          headerTitle="Presidents"/>
          ...
          </ec:table>

          使用ExportCsvTag導出CSV。當使用CSV導出是默認的分隔符為‘,’(comma)。你可以使用 delimiter屬性來指定為其他的符號。下面為指定‘|’(pipe)為CSV分隔符的示例:

          <ec:table
          items="presidents"
          action="${pageContext.request.contextPath}/presidents.run"
          />
          <ec:exportCsv
          fileName="presidents.txt"
          tooltip="Export CSV"
          delimiter="|"/>
          ...
          </ec:table>

          你可以通過指定view屬性來導出其他文件格式。eXtremeTable視圖實現View接口并是 可插接的。參閱View章了解更多信息。

          7.2. 擴展屬性

          大多數標簽包含一系列的固定屬性,這樣那些已經實現的功能能夠被使用。然而,eXtremeTable具有一種更具彈性的架構, 你可以添加自己的標簽屬性實現更多的定制工作。此外,eXtremeTable提供了非常清晰的鉤子(hooks)允許你得到那些定制的 標簽屬性來做一些你需要的工作。

          通過addExtendedAttributes()方法將擴展屬性包含到eXtremeTable里:

          public void addExtendedAttributes(Export export);

          如果方法被覆蓋ExportTag將調用它。你需要做的就是擴展ExportTag,覆蓋addExtendedAttributes()方法,然后添加自己 的屬性到導出對象中。

          一個定制的ExportCsvTag示例如下:

          public class ExportCsvTag extends ExportTag {
          private String delimiter;

          public String getDelimiter() {
          return delimiter;
          }

          public void setDelimiter(String delimiter) {
          this.delimiter = delimiter;
          }

          public void addExtendedAttributes(Export export) {
          String view = export.getView();
          if (StringUtils.isBlank(view)) {
          export.setView(TableConstants.VIEW_CSV);
          export.setImageName(TableConstants.VIEW_CSV);
          }
          export.addAttribute(CsvView.DELIMITER, getDelimiter());
          }
          }

          現在你添加了屬性值到Export對象,下面是CsvView實現的一部分:

          public class CsvView implements View {
          public void body(TableModel model, Column column) {
          Export export = model.getExportHandler().getCurrentExport();
          }
          }

          另外,你也可以定制自己的標簽和自己的TLD文件。你不需要修改extremecomponents.tld文件。 你能象使用eXtremeTable里的標簽一樣使用自己的標簽,除了使用你自己標簽的參照。假如你的標簽參照為mycompany 并且標簽為customExport,你可以像下面一樣使用他們:

          <ec:table
          items="presidents"
          action="${pageContext.request.contextPath}/public/demo/presidents.jsp"
          title="Presidents"
          >
          <mycompany:customExport fileName="presidents.txt" delimiter="|"/>
          ...
          </ec:table>

          posted on 2006-02-27 14:28 Lucky 閱讀(611) 評論(0)  編輯  收藏 所屬分類: extremeComponents

          <2006年2月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627281234
          567891011

          導航

          隨筆分類(125)

          文章分類(5)

          日本語

          搜索

          積分與排名

          最新隨筆

          最新評論

          主站蜘蛛池模板: 沈阳市| 容城县| 德江县| 普格县| 金华市| 宁德市| 德阳市| 宜兰县| 海兴县| 新民市| 皋兰县| 浦北县| 长海县| 崇州市| 哈巴河县| 寿宁县| 甘泉县| 建阳市| 城固县| 安化县| 锦屏县| 清苑县| 建德市| 灵台县| 新闻| 庆云县| 盐边县| 渝中区| 海原县| 沧州市| 花垣县| 响水县| 德化县| 景洪市| 无极县| 西和县| 花莲市| 西宁市| 河西区| 巴里| 麻城市|