Grails将JSP呈现为空白页面

时间:2008-12-30 05:21:56

标签: jsp grails

我有一个带有JSP页面的Grails应用程序(我正在移植一个旧的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功能是由Web应用程序(Jetty,Tomcat)提供的,我认为是的。

编辑:这发生在Grails 1.0.4和1.1 beta 2(1.1声称添加了JSP支持)

3 个答案:

答案 0 :(得分:0)

是的,Grails与JSP兼容。

完全空白?所以,如果你“显示来源”,你什么都得不到?

如果你是IntelliJ用户,你可以安装Grails插件,设置一个断点并逐步查看代码,看看发生了什么。

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

答案 1 :(得分:0)

听起来您没有正确部署标记库。我们需要了解您正在使用的应用服务器,以便能够进一步为您提供帮助。

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

答案 2 :(得分: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>

我正在做的是从title传递动态构建的index.gsp并使用布局maintitle是html head标记的必需属性。所以错误的是,我将标题作为null值传递。它没有显示预期的页面。

所以解决方案是:

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

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