【发布时间】:2016-07-08 21:52:12
【问题描述】:
我只是想设置一个非常简单的控制器来返回一个非常简单的视图(具有非常简单的布局),但是我不断收到与内容类型相关的错误。
class SimpleController {
def index() {
render(view: "simple")
}
}
_simple.gsp:
<html>
<head>
<meta name="layout" content="blank" />
</head>
<body>
Simple test page.
</body>
</html>
空白.gsp:
<!DOCTYPE html>
<html>
<head>
<g:layoutHead />
</head>
<body>
<g:layoutBody />
</body>
</html>
没有比这更简单的了。正确找到了控制器方法,问题似乎出在渲染期间。这是我得到的错误:
2016-07-05 16:07:14,931 [http-bio-8085-exec-5] 错误错误。GrailsExceptionResolver - 处理请求时发生 NullPointerException:[GET] /testApp/simple/ 堆栈跟踪如下: 消息:空 线 |方法 ->> 15 |在 com.opensymphony.module.sitemesh.filter.HttpContentType
| 49 |构建 com.opensymphony.sitemesh.compatability.PageParser2ContentProcessor | 89 |获取内容。 . . . . . . . . .在 org.codehaus.groovy.grails.web.sitemesh.GrailsContentBufferingResponse | 107 |在 org.codehaus.groovy.grails.web.sitemesh.GrailsLayoutView 中获取内容
调试确认 context.contentType 为空。我找到了四种不同的方法来设置内容类型,但它们似乎都不起作用。
<%@ page contentType="text/html;charset=UTF-8" %>
在视图的顶部。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
在视图的head标签中。
contentType: "text/html"
传递给控制器中的渲染方法。
response.setContentType("text/html")
在控制器方法中调用。
这是在现有项目中,许多其他控制器和视图都可以正常工作。我需要添加一个新的控制器和视图,我最初复制了现有的工作件。当这不起作用时,我试图将问题简化为尽可能简单,并最终得到上面的代码,但仍然无法正常工作。
顺便说一句,这是 Grails 2.5.1 (卡在这个版本)。
【问题讨论】:
标签: grails