2010-05-07 51 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 ... 
} 
相關問題