JSF 1.1另存为框问题

  • 本文关键字:问题 另存为 JSF jsf
  • 更新时间 :
  • 英文 :


我在Tomcat 6.0.26和Java 1.4版本上使用JSF 1.1。我必须在我的项目中使用它们。我的jsf页面有一个数据表,我希望他们导出,但保存为框。点击导出excel命令链接后,浏览器显示如下:

ÐIa¡±;þyþyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyRoot Entryyyyyyyyy@ Workbookyyyyyyyyyyyy0yyyyyyyyyyyyyyyyyyyyyyyy OIAa°Aa pmusty B°=œ¯¼= h :¾# 8 x@美元"·U1EyArial1EyArial1EyArial1EyArial #, # # 0 _);("$"#,## 0) ! " $ " #, # # 0 _);(红色)(" $ " #,# # 0)" " $ " #,# # 0.00 _);("$"#,## 0.00 )'"$"#,## 0.00 _);(红色)(" $ " #,# # 0.00)7 * 2 _("$"* #,## 0 _);_("$"* (#,## 0 );_("$"* "-"); @ 。) (* #, # # 0 _);_(* (#,## 0 );_(* "-"); @ ) ?: ("$"* #,## 0.00 _);_("$"* (#,## 0.00 );_("$"* "-"??); (@ ) 6 + 1 (* #, # # 0.00 _);_(* (#,## 0.00 );_(* "-"??); (@ _) aoy aoy oA aoy oA aoy oA aoy oA aoy oA aoy oA aoy oA aoy oA aoy oA aoy oA aoy oA aoy oA aoy oA aoy oA一百一十一+ oyø一)oyø,oyø一个一个男孩øoyø"€y"y"y€€€€"€y y"……-Sheet0œ害怕u ADSOYAD DEPARTMANEVCEPDAHILIerdemaktasYonetici02mesutozenIT03mustafaaydemir Netweaver01yunustastutanDeneme0506004yT 'II†»IA du©nOMbP ? _ * +, %丫ƒ€"著名"d,, ? ?Uy y y y y y y y y y y y y y y y y y y y y y y y y y y y y y yyyyy>¶@ yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy ! " # $þyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

我该如何解决这个问题?

感谢balusC。但问题并没有解决。这是我的代码。

' public String export(List List) {

    Iterator i1 = list.iterator();
    HSSFWorkbook wb = new HSSFWorkbook();
    HSSFSheet s = wb.createSheet();
    HSSFRow r = null;
    HSSFCell c = null;
    int i = 0;
    try {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        ExternalContext externalContext = facesContext.getExternalContext();
        HttpServletResponse resp = (HttpServletResponse) externalContext
                .getResponse();
        ServletOutputStream out = resp.getOutputStream();
        resp.setContentType("application/vnd.ms-excel");

        HSSFRow r2 = s.createRow(0);
        for (short cellnum = (short) 0; cellnum < 6; cellnum++) {
            c = r2.createCell(cellnum);
            if (cellnum == 0)
                c.setCellValue("AD");
            else if (cellnum == 1)
                c.setCellValue("SOYAD");
            else if (cellnum == 2)
                c.setCellValue("DEPARTMAN");
            else if (cellnum == 3)
                c.setCellValue("EV");
            else if (cellnum == 4)
                c.setCellValue("CEP");
            else if (cellnum == 5)
                c.setCellValue("DAHILI");
        }

        while (i1.hasNext()) {
            md1 = new Model();
            md1 = (Model) i1.next();
            int rownum = i + 1;
            r2 = s.createRow(rownum);
            for (short cellnum = (short) 0; cellnum < 6; cellnum++) {
                c = r2.createCell(cellnum);
                if (cellnum == 0)
                    c.setCellValue(md1.getAd());
                else if (cellnum == 1)
                    c.setCellValue(md1.getSoyad());
                else if (cellnum == 2)
                    c.setCellValue(md1.getDepartman());
                else if (cellnum == 3)
                    c.setCellValue(md1.getEv());
                else if (cellnum == 4)
                    c.setCellValue(md1.getCep());
                else if (cellnum == 5)
                    c.setCellValue(md1.getDahili());
            }
            i++;
        }
        resp.setHeader("content-disposition:",
                "attachment; filename= "TelefonRehberi.xls"");
        wb.write(out);
        out.flush();
        out.close();
        facesContext.responseComplete();
    } catch (Exception e) {
        System.out.println("Error: " + e);
    }
    return "";
}`

您需要设置内容类型头,以便浏览器了解它是什么类型的文件。

response.setHeader("Content-Type", "application/vnd.ms-excel");

您需要设置内容配置头,以便浏览器弹出另存为对话框:

response.setHeader("Content-Disposition", "attachment;filename="" + yourFileName + """);

您需要确保将文件写入二进制数据,而不是字符数据。

InputStream input = getExcelFileContentSomehow();
OutputStream output = response.getOutputStream();
// Write input to output.

更新:根据你的代码片段,你的Content-Disposition头是不正确的。标题名后面有个冒号。删除它。

相关内容

  • 没有找到相关文章

最新更新