Grails 3.1.10 找不到视图

Grails 3.1.10 Can't find views

我有一个 'JacketController' 方法 show() 试图将模型渲染到视图 worklist.gsp

  def show() {
        LOG.debug("JacketController:show()")
        render(view:"worklist", model:PatientSearchResult.list()) as HTML
    }

但每次我从浏览器调用操作时都会收到错误消息:

[Could not resolve view with name '/jacket/worklist' in servlet with name 'grailsDispatcherServlet'] with root cause  StandardWrapperValve.java 250 javax.servlet.ServletException: Could not resolve view with name /jacket/worklist' in servlet with name 'grailsDispatcherServlet'...

我认为它告诉我 worklist.gsp 不存在或在错误的位置但是 worklist.gsp 在 grails-app/views/jacket 目录中。

我的 url 映射如下所示:

        "/jacket" {
        controller = { 'jacket' }
        action = { GET: 'show' }
    }

我不知道是我缺少插件还是什么,但我的 build.gradle 在这里:(请原谅格式)

buildscript {
ext {
    grailsVersion = project.grailsVersion
}
repositories {
    mavenLocal()
    maven { url "https://repo.grails.org/grails/core" }
}
dependencies {
    classpath "org.grails:grails-gradle-plugin:$grailsVersion"
    classpath "org.grails.plugins:hibernate4:5.0.10"
    classpath "org.grails.plugins:views-gradle:1.0.12"
    classpath "com.bertramlabs.plugins:asset-pipeline-gradle:2.11.2"
 }} configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    if (details.requested.name == 'log4j') {
        details.useTarget "org.slf4j:log4j-over-slf4j:1.7.5"
    }
    if (details.requested.name == 'commons-logging') {
        details.useTarget "org.slf4j:jcl-over-slf4j:1.7.5"
    }

} }

version "0.1" group "viops"

apply plugin:"eclipse" apply plugin:"idea" apply plugin:"war" apply plugin:"org.grails.grails-web" apply plugin:"org.grails.plugins.views-json" apply plugin:"org.grails.grails-gsp" apply plugin:"asset-pipeline"

ext { grailsVersion = project.grailsVersion gradleWrapperVersion = project.gradleWrapperVersion }

repositories { mavenLocal() maven { url "https://repo.grails.org/grails/core" } }

dependencyManagement { imports { mavenBom "org.grails:grails-bom:$grailsVersion" } applyMavenExclusions false }

dependencies { //This top section pulls out Grails Logback logging solution and //replaces it with log4j2 // added the new way using Log4j2, yes, spring makes it easy compile "org.springframework.boot:spring-boot-starter-log4j2"

// changed spring-boot-autoconfigure so that it would not
// pull in the logback binding/implementation
compile('org.springframework.boot:spring-boot-autoconfigure') {
    exclude group: 'ch.qos.logback', module: 'logback-classic'
}
compile ('org.springframework.boot:spring-boot-starter-actuator'){
    exclude group: 'ch.qos.logback', module: 'logback-classic'
}


// and finally, added the log4j2 binding/implementation
compile "org.apache.logging.log4j:log4j-api:2.5"
compile "org.apache.logging.log4j:log4j-core:2.5"

compile "org.grails:grails-core"
provided "org.springframework.boot:spring-boot-starter-tomcat"
compile "org.grails:grails-plugin-url-mappings"
compile "org.grails:grails-plugin-rest"
compile "org.grails:grails-plugin-codecs"
compile "org.grails:grails-plugin-interceptors"
compile "org.grails:grails-plugin-services"
compile "org.grails:grails-plugin-datasource"
compile "org.grails:grails-plugin-databinding"
compile "org.grails:grails-plugin-async"
compile "org.grails:grails-web-boot"
compile "org.grails:grails-logging"
compile "org.grails.plugins:cache"
compile "org.grails.plugins:hibernate4"
compile "org.hibernate:hibernate-ehcache"
compile "org.grails.plugins:views-json"
console "org.grails:grails-console"
profile "org.grails.profiles:rest-api"
runtime "com.h2database:h2"
testCompile "org.grails:grails-plugin-testing"
testCompile "org.grails.plugins:geb"
testCompile "org.grails:grails-datastore-rest-client"
testRuntime "org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.1"
testRuntime "net.sourceforge.htmlunit:htmlunit:2.18" }

谁能指出我正确的方向?

quindimildev 在评论中发布了答案。

我应该先用网络配置文件创建一个应用程序。因此,我使用 Web 配置文件创建了一个新项目,并将生成的构建文件与现有应用程序进行了比较。

我引入了 REST 配置文件中缺少的依赖项,并注释掉了一些可能存在冲突的依赖项。

您错过了使 gsp 正常工作的依赖项:

        compile "org.grails.plugins:gsp"