Display doc file in iframe struts2

Я хочу показать .doc а также .docx файлы на моем сайте в iframe.

<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 отправляет результат типа stream

<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>

Iframe работает, когда я устанавливаю URL действия прямо в атрибуте src. Однако с src="http://docs.google.com/viewer?embedded=true&url= действие никогда не называется. Есть ли другая альтернатива, чтобы показать файл MS Word? Я могу показать PDF, непосредственно поместив URL-адрес действия в атрибут src.

Спасибо

РЕДАКТИРОВАТЬ

Проблема может быть в том, что src iframe преобразуется в:

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

Требуемый URL-адрес должен быть абсолютным URL-адресом действия:

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

Как я могу этого достичь? Это может не работать на локальном хосте, но должно работать на хостинге

1 ответ

Решение

Используйте атрибут forceAddSchemeHostAndPort из s:url тег, чтобы получить полный URL

Больше информации

Например

<s:url action='myaction' forceAddSchemeHostAndPort='true'>
<s:param name='id' value='25'/>
</s:url>
Другие вопросы по тегам