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>