gpt4 book ai didi

spring - 使用Spring Boot和Kotlin无法提供动态Web内容

转载 作者:行者123 更新时间:2023-12-02 13:39:27 25 4
gpt4 key购买 nike

基于Spring Boot tutorial提供动态Web内容,我想在Kotlin中做同样的事情。我的Kotlin项目基于此tutorial。运行两个教程的代码都没有问题。

据我了解,我只需要添加一个 Controller ,该 Controller 将返回对模板的引用。

这里HelloController.kt(位于src / main / kotlin / foo / controller下):

package foo.controller

import org.slf4j.LoggerFactory
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.RequestMapping

@Controller
class HelloController {

private val log = LoggerFactory.getLogger(HelloController::class.java)

@RequestMapping("/")
fun hello(): String {
log.info("foo")
return "index"
}
}

这是我要访问的简单"template", index.html(位于src / main / resources / templates / index.html下):
<html>
<head>
</head>
<body>
Bar
</body>
</html>

因此从技术上讲,如果我转到 localhost:8080,则应该显示 index.html,但我没有。相反,我有一个404错误。我确实显示了日志,因此调用了 hello方法。我究竟做错了什么?我在Spring Boot教程中没有看到任何配置文件,所以我想Spring正在做一些事情来从函数返回的内容中获取正确的资源。

编辑:

已请求我的毕业证书进口:
buildscript {
val springBootVersion = "1.4.3.RELEASE"
val kotlinVersion = "1.0.6"
extra["kotlinVersion"] = kotlinVersion

repositories {
mavenCentral()
}

dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion")
classpath("org.jetbrains.kotlin:kotlin-noarg:$kotlinVersion")
classpath("org.jetbrains.kotlin:kotlin-allopen:$kotlinVersion")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
}
}

apply {
plugin("kotlin")
plugin("kotlin-spring")
plugin("kotlin-jpa")
plugin("org.springframework.boot")
}

version = "0.0.1-SNAPSHOT"

configure<JavaPluginConvention> {
setSourceCompatibility(1.8)
setTargetCompatibility(1.8)
}

repositories {
mavenCentral()
}

val kotlinVersion = extra["kotlinVersion"] as String

dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework.boot:spring-boot-starter-data-jpa")
compile("com.h2database:h2")
compile("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion")
compile("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
compile("org.apache.commons:commons-io:1.3.2")
compile("org.apache.commons:commons-lang3:3.3.1")
testCompile("org.springframework.boot:spring-boot-starter-test")
}

最佳答案

我看起来spring-boot-starter-web依赖项还不足以设置 View 解析。尝试添加spring-boot-starter-thymeleaf依赖项,并添加。Thymeleaf 应该可以处理您的html文件。

compile("org.springframework.boot:spring-boot-starter-thymeleaf")

您的HTML文件应为 src/main/resources/templates,否则可能不会自动检测到。

关于spring - 使用Spring Boot和Kotlin无法提供动态Web内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41897967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com