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"
我有一个 '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"