Grails(3.x)Frameworkを使い始めましたが、ドメインコンテンツをビューにレンダリングしようとしたときに、このエラーが発生しました。
Error 500: Internal Server Error
URI /hello/index
Class javax.servlet.ServletException
Message: Could not resolve view with name 'index' in servlet with name 'grailsDispatcherServlet'
HelloController.groovy:
package helloworld
class HelloController {
def index() {
def Person persona1 = new Person(firstName: "someone", lastName: "stuck", age: 21)
[persona:persona1]
}
}
Person.groovy:
package helloworld
class Person {
String firstName
String lastName
int age
}
grails-app/views/hello/index.gsp
ファイルが存在しています。
これには答えがあることはわかっていますが、Grails 3.0.11を使用しているという点でチャイムを鳴らしたいと思い、次のようなコードが機能することがわかりました。
render(view: 'index', model: [data: value])
以下は上記のエラーで失敗しますが。
def index() {
[data:value]
}
時間があれば、これをもっと調べて、何が起こっているのかを理解しようとします。
gNU/Linuxを使用している場合は、フォルダー名やファイルなどで大文字と小文字の不一致がないか確認してください。
grails-app/views/Hello/index.gsp
grails-app/views/hello/index.gsp <-- Not the same
GNU/Linuxでは大文字と小文字が区別されます。
grails generate-views -指定されたドメインクラスのGSPビューを生成します