У меня есть приложение Grails со страницей JSP (я портирую устаревшее приложение JSP). По какой-то причине страница отображается полностью пустой. Глядя на заголовки HTTP, я вижу, что это 200 с длиной содержимого 0.
HTTP/1.1 200 OK
Content-Language: en-US
Content-Type: text/html; charset=iso-8859-1
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Set-Cookie: JSESSIONID=1sh9r73vqvukj;Path=/myGrailsApp
Content-Length: 0
Server: Jetty(6.1.12)
Страница представляет собой комбинацию HTML, тегов (${property}), JSP (<jsp:include>) и фрагментов короткого кода (<% code %>, да, я знаю, что это плохая идея). В файле журнала или консоли нет ничего, что указывало бы на ошибку. Неужели Grails каким-то образом скрывает исключение или ошибку?
Обновлено: проблема связана с тегом JSP <jsp:include/> include. Если я удалю все JSP-файлы, Grails выполнит рендеринг. Совместим ли Grails с JSP? Поскольку функциональность JSP обеспечивается веб-приложением (Jetty, Tomcat), я бы подумал, что да.
Обновлено: это происходит с Grails 1.0.4 и 1.1 beta 2 (1.1 утверждает, что добавлена поддержка JSP)





Да, Grails совместим с JSP.
Совершенно пусто? Значит, если вы "покажете исходник", вы ничего не получите?
Если вы являетесь пользователем IntelliJ, вы можете установить подключаемый модуль Grails, установить точку останова и выполнить код, чтобы увидеть, что происходит.
Еще я бы проверил версию и стандарты JSTL. Они меняются в зависимости от версии используемого движка сервлета / JSP.
Ага, это совершенно пусто. Источник показа пуст (так как Content-Length равен 0).
О боже. Тогда у меня ничего нет. Какой сервлет / механизм JSP вы используете, Jetty или Tomcat? Какая версия?
Jetty, какая бы версия ни была включена в Grails
Похоже, вы неправильно развертываете библиотеки тегов. Нам нужно знать, какой сервер приложений вы используете, чтобы иметь возможность помочь вам в дальнейшем.
Обновлено: еще одна мысль - возможно, тег include работает, но в включаемом содержимом есть ошибка компиляции. Вы пробовали просто вернуть включенный контент?
Очевидно, к этому времени вы бы уже решили свою проблему, но это решение для других.
Сегодня я столкнулся с такой же проблемой:
Это фрагмент кода из main.gsp (ВЕРСИЯ)
<head>
<g:layoutTitle default = "Grails" />
<g:layoutHead />
<g:javascript src = "jquery-1.6.1.min.js" />
</head>
А это мой index.gsp
<head>
<title>${title}</title>
<meta name = "layout" content = "main" />
</head>
Я передавал динамически созданный title из index.gsp и использовал макет main. title - обязательный атрибут html тега head. Так что по ошибке я передал title как значение null. и не отображалась ожидаемая страница.
Итак, решение:
title в файле gsp. В приведенном выше случае по умолчанию будет использоваться Grails в качестве заголовка.null.У вас может быть другая проблема, но это также может привести к пустой странице.
К сожалению, теперь вы упоминаете бета-версию 1.1 и поддержку JSP (или нет). Думаю, мне нужно отредактировать свой ответ на ваш громкий вопрос.