1

I have a Grails application with a JSP page (I'm porting a legacy JSP application). For some reason, the page renders completely blank. Looking at the HTTP headers I see it's 200 with a content length of 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)

The page is a combination of HTML, tags (${property}), JSP includes (<jsp:include>), and short code snippets (<% code %>, yes I know this is a bad idea). There is nothing in the log file or console that indicates an error. Is Grails somehow silently hiding an exception or error?

Edit: The problem is related to the JSP <jsp:include/> include tag. If I remove all JSP includes then Grails will render. Is Grails compatible with JSP? Since JSP functionality is provided by the web application (Jetty, Tomcat) I would think yes.

Edit: This occurs with Grails 1.0.4 and 1.1 beta 2 (1.1 claims to have added JSP support)

4

3 回答 3

0

是的,Grails 与 JSP 兼容。

完全空白?因此,如果您“显示来源”,您将一无所获?

如果您是 IntelliJ 用户,您可以安装 Grails 插件、设置断点并单步执行代码以查看发生了什么。

我要检查的其他内容是版本和 JSTL 标准。这些变化取决于您使用的 servlet/JSP 引擎的版本。

于 2008-12-30T14:14:25.003 回答
0

显然,此时您已经解决了您的问题,但此解决方案适用于其他人。

今天我遇到了同样的问题:

这是来自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>

我正在做的是通过动态构造titleindex.gsp使用 layout传递maintitle是 htmlhead标签的必需属性。所以错误地,我将标题作为null价值传递。它没有显示预期的页面。

所以解决方案是:

  • 如果您需要静态标题,请不要title在 gsp 文件中使用标签。在上述情况下,它将Grails默认用作标题。
  • 如果您需要动态标题,请确保它不是null价值。

您可能有不同的问题,但这也可能导致空白页。

于 2011-07-09T12:23:14.880 回答
0

听起来您没有正确部署标签库。我们需要知道您正在使用的应用服务器才能进一步为您提供帮助。

编辑:另一个想法 - 也许包含标签正在工作,但包含的内容存在编译错误。您是否尝试过仅返回包含的内容?

于 2009-04-09T15:31:37.297 回答