아주 단순한 컨트롤러를 설치하여 매우 간단한 뷰를 반환하려고하지만, 콘텐트 유형과 관련된 오류가 계속 발생합니다.Grails에서 콘텐츠 유형을 어떻게 설정합니까?
class SimpleController {
def index() {
render(view: "simple")
}
}
_simple.gsp :
<html>
<head>
<meta name="layout" content="blank" />
</head>
<body>
Simple test page.
</body>
</html>
blank.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] 오류 errors.GrailsExceptionResolver - 요청 처리시 NullPointerException이 발생했습니다 : [GET]/testApp/단순/ 스택 추적은 다음과 같습니다. 메시지 : null Line | 방법 - >> 15 | inContentType
| 49 | com.opensymphony.sitemesh.compatability.PageParser2ContentProcessor를 빌드하십시오. | 89 | getContent. . . . . . . . . . GryilsContentBufferingResponse | 107 | obtainContent in org.codehaus.groovy.grails.web.sitemesh.GrailsLayoutView
디버깅은 context.contentType이 null임을 확인합니다. 콘텐츠 형식을 설정하는 네 가지 방법을 찾았지만 그 중 아무 것도 작동하지 않는 것 같습니다.
<%@ page contentType="text/html;charset=UTF-8" %>
보기의 맨 위에.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
보기의 헤드 태그에 있습니다.
contentType: "text/html"
컨트롤러의 렌더링 방법에 전달되었습니다.
response.setContentType("text/html")
컨트롤러 메소드에서 호출됩니다.
이것은 많은 다른 컨트롤러와보기가 완벽하게 잘 작동하는 기존 프로젝트에 있습니다. 새로운 컨트롤러와 뷰를 추가해야하는데 원래는 기존 작업 부분을 복사했습니다. 그게 작동하지 않을 때, 가능한 한 간단하게 문제를 줄이려고 노력하고 여전히 작동하지 않는 위의 코드로 끝났습니다.
Btw, 이것은 Grails 2.5.1 (이 버전에서 멈춤)입니다.
감사합니다. 나는 _이 필요할 때 grails로 결코 알 수 없다. 사용 된 코드는 _을 사용하고 방금 나갔습니다. 뷰 해석기가 지정된 뷰를 찾을 수 없다는 오류를 던지지 않았으므로이 뷰를 변경한다고 생각조차하지 않았습니다. –