【问题标题】:JSF - Display MS word document on the web browserJSF - 在网络浏览器上显示 MS Word 文档
【发布时间】:2010-12-15 15:20:07
【问题描述】:

对于我的一个项目,我需要使用 JSF 2.0 在 Web 浏览器上显示 MS Word 文档。 Web 应用程序包含标题、内容等。 MS word 文档应在内容部分动态显示(使用 AJAX)。支持 bean 读取 ms word 文档。我可以使用 JSF 作为独立应用程序在浏览器上显示 MS Word 文档。但是如果从另一个 JSF 文件中调用它,这将不起作用。有人可以对这个问题有所了解吗?

JSF 独立应用程序 DiaplayDoc.xhtml。这将在浏览器上显示 MS 文档。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core">
    <f:event type="preRenderView" listener="#{DisplayDoc.downloadDoc}"/>    
</html> 

我需要从另一个包含其他 jsf 组件的 jsf 文件中调用此页面。将执行页眉部分,但不会执行页脚部分。 (当页脚设置为显示 pdf 插件或图像时,这可以正常工作。)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      > 
<h:body>        
        <h:form id="form1">
           <div id="header">
               Hello World
            </div>
           <div id="footer">
            <object data="<Project>/DisplayDoc.jsf" type="application/msword" width="100%" height="100%">
            </object>
            </div>
        </h:form>
</h:body>
</html>

bean部分包含

response.reset();
response.setHeader("Content-Type", "application/msword");
response.setHeader("Content-Length", String.valueOf(fFile.length()));
response.setHeader("Content-Disposition", "inline; filename=\"" + strFilepath + "\"");

【问题讨论】:

  • 要格式化代码,将代码缩进 4 个空格。您可以通过在编辑器中选择代码部分然后按工具栏中的010101 按钮或Ctrl+K 键来自动执行此操作。另请参阅消息编辑器中右侧列中的格式规则。我已经为你做了。

标签: jsf


【解决方案1】:

JSF 不适合这个目的。这样,您使用 HTML doctype 和二进制 DOC 内容周围的其他 HTML 标记来错误格式化 DOC 输出。将其替换为 servlet 并让 &lt;object data&gt; 指向 servlet URL。如有必要,您可以将 bean 属性作为 servlet 请求参数传递,例如

<object data="docservlet?param1=#{bean.param1}&amp;param2=#{bean.param2}">

【讨论】:

  • Hello BalusC DocTest 是我的 servlet,它调用和加载 word 文件。从 Doc.xhtml 文件调用 它没有调用 servlet。 Servlet DocTest 已映射到 web.xml 文件中。我错过了什么吗? GDK
  • URL 错误或 servlet 启动失败。验证 URL 是否正确和/或阅读日志。
  • @BalusC 请看看我的问题...stackoverflow.com/questions/18552036/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-18
  • 1970-01-01
相关资源
最近更新 更多