FirefoxのようにExcel文書の[名前を付けて保存]/[開く]ダイアログボックスが開いていないという問題が発生しました。Internet ExplorerでExcel文書を開くときの問題
私は、URLパターンとして '* .xls'を使用しているサーブレットフィルタを作成しました。私が直面している問題(これは私が作成した最初のフィルタなので)は、ダイアログボックスが正しく表示されるように、ユーザーが望むファイルの名前を取得する方法です。現在、フィルタは、ユーザーが指定されたページ上のリンクを選択すると呼び出されます。ここで
は私が思い付いたものです:
以上)私はのdoFilter(持っているものです。
String fileName = "fileName.xls";
HttpServletRequest httpRequest = (HttpServletRequest) pRequest;
String requestURI = httpRequest.getRequestURI();
if(StringUtils.isNotBlank(requestURI))
{
String uri[] = StringUtils.split(requestURI, '/');
fileName = uri[uri.length - 1];
}
HttpServletResponse httpResponse = (HttpServletResponse) pResponse;
httpResponse.setContentType("application/vnd.ms-excel");
httpResponse.setHeader("Content-disposition", "attachment; filename=\"" + fileName +"\"");
のweb.xml:Windows XPでは、JBossの、Eclipseの、オラクル:
<filter>
<filter-name>ExcelFilter</filter-name>
<filter-class>vsg.rp.common.ExcelFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ExcelFilter</filter-name>
<url-pattern>*.xls</url-pattern>
</filter-mapping>
このすべては、私の開発ボックスに取り組んでいます。しかし、それがテストサーバー(Linux、Apache/JBoss、Oracle)上で動作する場合、動作しません。フィルタが呼び出されていない、エラーがスローされていないなどのように見えます。
ファイル名変数を指定します。これはどのように設定されますか? – boyd4715
これは、ブラウザであなたに提示したいファイルの名前です。例えばファイル名を "sample.xls"に設定すると、IE/FirefoxなどにExcelをダウンロードし、必要に応じて "sample.xls"として保存します。 –