displaytagのExportについて

| コメント() | トラックバック(0) |

displaytagにてExportオプションがありまして、これでxml, csv, excel形式のファイル出力ができるのですが、あちらの方が作ったためか、日本語などの文字に対応していませんでした。正確に言うと、文字コード変換などしないということです。

自分が実装した文字コード環境はJSPはEUC-JPで表示させているのですが、Excelでダウンロードするともちろん文字化けします。そりゃそうですよね、WindowsはShift_JISですから。

で、何をしたかというと、displaytagのソースをいじりました。具体的にはdisplaytagのTableTag.javaで、この中のwriteExportメソッドを修正しました。
writeExport内でJspWriterで出力しているのですが、これを引数として渡されているHttpServletResponse#getOutputStreamで出力するようにしました。もちろんPrintWriterで文字コード指定してストリームを生成していますが。あと、勝手にタグ属性を追加して、出力文字コードと入力文字コードを指定できるようにしました。下記がその修正した箇所です。

    1126             try
    1127             {
    1128                 if (this.exportEncoding == null)
    1129                     this.exportEncoding = "Shift_JIS";
    1130                 if (this.originalEncoding == null)
    1131                     this.originalEncoding = "EUC-JP";
    1132                 PrintWriter writer = new PrintWriter(
    1133                     new OutputStreamWriter(response.getOutputStream(),
    1134                                            this.exportEncoding));
    1135                 writer.write(
    1136                     new String(exportString.getBytes(this.originalEncoding)));
    1137                 writer.flush();
    1138                 /*
    1139                 out.write(exportString);
    1140                 out.flush();
    1141                 */
    1142             }
    1143             catch (IOException e)

いっそのことdisplaytagに投稿しようかと思っていますが、勇気がないし英語読み書きできないので保留状態です。それに本当にこれでいいのかわかりませんし...

トラックバック(0)

トラックバックURL: http://www.boundless-ocean.ne.jp/mt/mt-tb.cgi/118

Powered by Movable Type 4.27-ja
OpenID対応しています OpenIDについて

このブログ記事について

このページは、Tomochikaが2004年7月10日 23:52に書いたブログ記事です。

ひとつ前のブログ記事は「PC到着!!」です。

次のブログ記事は「PlayStationページ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。