在iframe struts2中显示doc文件

时间:2013-10-01 22:34:18

标签: java iframe struts2 google-document-viewer

我想在我的网站上以iframe显示.doc.docx个文件。

<iframe style="border-style: none;" src="http://docs.google.com/viewer?embedded=true&url=<s:url action="loadFile"><s:param name="id" value="id"/></s:url>" height="500" width="100%">

loadFile操作发送类型为流的结果

<action name="loadFile" class="com.view.file" method="loadFile">
                <result name="success" type="stream">
                    <param name="contentType">${fileType}</param>
                    <param name="inputName">inputStream</param>
                    <param name="contentDisposition">inline;filename="${fileName}"</param>
                    <param name="bufferSize">1024</param>
                </result>
</action>

当我在src属性中直接设置动作网址时,iframe会起作用。但是,使用src="http://docs.google.com/viewer?embedded=true&url=时,操作永远不会被调用。 有没有其他替代显示MS Word文件?我可以通过直接将动作URL放在src属性中来显示pdf。

由于

修改

问题可能是因为iframe的src转换为:

src="http://docs.google.com/viewer?embedded=true&url=/App/loadFile?id=25"

所需的网址应该是操作的绝对网址,如:

src="http://docs.google.com/viewer?embedded=true&url=http://localhost/App/loadFile?id=25"

我怎样才能实现这一目标?它可能不适用于localhost,但应该在托管

上工作

1 个答案:

答案 0 :(得分:0)

使用forceAddSchemeHostAndPort标记的s:url属性获取完整的网址

More Info

例如

<s:url action='myaction' forceAddSchemeHostAndPort='true'>
<s:param name='id' value='25'/>
</s:url>