我有一个带有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支持)
答案 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
并使用布局main
。 title
是html head
标记的必需属性。所以错误的是,我将标题作为null
值传递。它没有显示预期的页面。
所以解决方案是:
title
标记。在上述情况下,默认情况下会使用Grails
作为标题。null
值。您可能遇到不同的问题,但这也可能导致空白页。