eXtremeTable里視圖是可插接的,這意味著html很容易改變,或者一類新的導出能夠被實現。
所有需要做的就是實現View接口并在TableTag或ExportTag中設置view屬性。首先,讓我們看一下View接口:
public interface View {
public void beforeBody(TableModel model);
public void body(TableModel model, Column column);
public Object afterBody(TableModel model);
}
實現View接口的類有三次插入內容的機會。beforeBody()方法會被立刻調用;
body()方法在每一行的每一列處理的時候調用;afterBody()方法是被eXtremeTable調用的
最后方法,它將返回代表視圖的一個對象,通常它是一個字符串。例如:在HTML視圖類中為的html
標簽(markup),當然它可以是任何東西。最主要的原因是定制導出時,你應該返回一些其他的對象。
eXtremeTable的所有標簽(markup)在兩個地方生成:View或Cell。 組合使用他們,
能為你提供一種可插接的表示內容的解決方案。為了使用定制的View, 只需要使用TableTag的view屬性來指定實現View接口的實現類的 全路徑:
<ec:table
items="presidents"
action="${pageContext.request.contextPath}/presidents.run"
view="com.mycompany.view.MyCustomView"
>
...
</ec:table>
與表視圖不同,export的所有標簽都在View中生成。為了使用定制的View,
只需要使用ExportTag的view屬性來指定實現View接口的實現類的 全路徑:
<ec:table
items="presidents"
action="${pageContext.request.contextPath}/presidents.run"
>
<ec:export
fileName="custom.file"
tooltip="Export Custom"
view="com.mycompany.view.MyCustomExportView"/>
...
</ec:table>