Chrome выдает ошибку «Дополнительный контент в конце документа» при добавлении - PullRequest
2 голосов
/ 02 июня 2011

У меня есть следующая таблица JSF:

 <?xml version="1.0" encoding="UTF-8"?>
<!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:head>
    <title>List</title>
</h:head>

<h:body>
<h1>List</h1>

    <h:form>

        <h:dataTable value="#{myBean.workflows}" var="item">
            <h:column>
                <f:facet name="header">ID</f:facet>
                #{item.id}
            </h:column>
            <h:column>
                <f:facet name="header">Name</f:facet>
                #{item.name}
            </h:column>
            <h:column>
                <h:link outcome="edit" value="Edit">
                    <f:param name="myId" value="#{item.id}"/>
                </h:link>
            </h:column>
            <h:column>
                <h:link outcome="run" value="Run">
                    <f:param name="myId" value="#{item.id}"/>
                </h:link>
            </h:column>
            <h:column>
                 <h:commandButton value="Delete" action="#{myBean.doDelete}" />
            </h:column>
        </h:dataTable>
    </h:form>
</h:body>

</html>

Следующая часть:

    <h:column>
         <h:commandButton value="Delete" action="#{myBean.doDelete}" />
    </h:column>

вызывает ошибку "error on line 361 at column 9: Extra content at the end of the document" в Chrome над таблицей. В то же время в журнале сервера отображается исключение: «Невозможно сгенерировать страницу ошибок Facelets, поскольку ответ уже был принят».

Почему дополнительный <h:column> вызывает эту ошибку?

ОБНОВЛЕНИЕ: Похоже, что ошибка будет выдаваться, если имеется более двух компонентов (например, три h:link компонента).

Ответы [ 2 ]

1 голос
/ 02 июня 2011

Я понимаю, что это происходит только тогда, когда есть исключение при рендеринге, но для Facelets было уже слишком поздно изменить ответ на полноценную страницу ошибки HTTP 500.Слишком поздно, потому что часть ответа уже принята, что является точкой невозврата.Это объясняет ошибку «Невозможно сгенерировать страницу Facelets, поскольку ответ уже был принят».

Chrome, по-видимому, будет отображать «Дополнительное содержимое в конце документа», когда получающийся HTML / XML искажен.Действительно, Facelets внезапно прекратили рендеринг HTML-кода из-за исключения.

Чтобы устранить эту проблему, следует просмотреть в журналах сервера исключение real , которое заставило Facelets прекратить рендеринг HTML.

0 голосов
/ 16 июня 2011

добавьте это в ваш xhtml:

f: view

и закройте его в конце формы или просто добавьте и закройте до / после тегов тела.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...