2010-05-07 55 views
2

当您从Displaytag启用“导出”时,标记代码会为您提供带有特殊魔术参数的链接,该参数将标记识别为表格内容应该导出的指标(如CSV,Excel等)。那么我对检测媒体类型感兴趣,以便(例如)我可以排除在导出时无意义的列(嵌入式操作按钮,或者用于行选择的复选框)。Displaytag是否在页面或请求属性中存储了“媒体类型”?

我想我可以写一个表装饰器,并使用它来粘贴请求上的媒体类型,但如果标签已经做到了,那么避免这种情况会很好。文件不明确的主题;我想我也可以开始通过源代码进行挖掘。

+0

@BalusC好,这是一个了不起的想法,我觉得没有想到它密集 – Pointy 2010-05-07 23:53:34

+0

不客气。我把评论变成了答案。 – BalusC 2010-05-08 21:14:00

回答

1

不知道,因为我不使用Displaytag,但对于进一步的调试,它可能是很好的了解,你可以只用素色印花${pageScope}${requestScope}或遍历它们显示所有这些属性的,如果它是一个Map使用JSTLc:forEach

<c:forEach items="${requestScope}" var="entry"> 
    ${entry.key} = ${entry.value}<br> 
</c:forEach> 

这可以确定感兴趣的Displaytag属性。

+0

再次感谢!确实有一个名为“mediaType”的页面范围变量。另外,在提及文档的同时,我还提醒说,“列”标签已经接受了一个“媒体”属性,该属性指出适合于该列的媒体类型。 – Pointy 2010-05-09 12:24:14

0

使用TableTagParameters.PARAMETER_EXPORTTYPE HTTP请求参数。

ActionBeanContext context; // in your action bean class ... 

String exportTypeStr = context.getRequest().getParamter(TableTagParameters.PARAMETER_EXPORTTYPE); 
if (String.valueOf(MediaTypeEnum.EXCEL.getCode().equals (exportTypeStr)) { 
    /// user selected export to Excel format ... 
} 
相关问题