Grails отображает JSP как пустую страницу - PullRequest
1 голос
/ 30 декабря 2008

У меня есть приложение 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/>. Если я уберу все JSP-включения, Grails будет отображаться. Совместим ли Grails с JSP? Поскольку функциональность JSP обеспечивается веб-приложением (Jetty, Tomcat), я думаю, что да.

Редактировать: это происходит с Grails 1.0.4 и 1.1 beta 2 (1.1 утверждает, что добавил поддержку JSP)

Ответы [ 3 ]

0 голосов
/ 09 апреля 2009

Похоже, вы не правильно развернули библиотеки тегов. Нам нужно знать сервер приложений, который вы используете, чтобы иметь возможность помочь вам в дальнейшем.

Редактировать: Еще одна мысль - возможно, тег include работает, но в включаемом контенте есть ошибка компиляции. Вы пытались просто вернуть включенный контент?

0 голосов
/ 09 июля 2011

Очевидно, к этому времени вы бы решили свою проблему, но это решение для других.

Сегодня я столкнулся с той же проблемой:

Это фрагмент кода из main.gsp (LAYOUT)

<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. Поэтому по ошибке я передавал заголовок как null значение. и это не показывало ожидаемую страницу.

Итак, решение:

  • если вам нужен статический заголовок, не используйте тег title в вашем файле gsp. В приведенном выше случае он будет использовать Grails в качестве заголовка по умолчанию.
  • Если вам нужен динамический заголовок, убедитесь, что это не null значение.

У вас могут быть другие проблемы, но это также может привести к появлению пустой страницы.

0 голосов
/ 30 декабря 2008

Да, Grails совместим с JSP.

совершенно пусто? Так что, если вы «покажете источник», вы ничего не получите?

Если вы являетесь пользователем IntelliJ, вы можете установить плагин Grails, установить точку останова и пройти по коду, чтобы увидеть, что происходит.

Другие вещи, которые я проверю, это версия и стандарты JSTL. Они меняются в зависимости от используемой версии движка сервлета / JSP.

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