我尝试使用gradle,groovy和spring-boot框架构建一个简单的应用程序,并使用以下代码:
@Grab("thymeleaf-spring4")
@Controller
class ViewBasedApp {
def chapters = ["Quick Start With Groovy",
"Quick Start With Java",
"Debugging and Managing Your App",
"Data Access with Spring Boot",
"Securing Your App"]
@RequestMapping("/")
def home(@RequestParam(value="name", defaultValue="World") String n) {
new ModelAndView("home")
.addObject("name", n)
.addObject("chapters", chapters)
}
}
这是我的build.gradle文件:
group 'LoginApp'
version '1.0-SNAPSHOT'
apply plugin: 'groovy'
repositories {
mavenCentral()
}
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.3.11'
testCompile group: 'junit', name: 'junit', version: '4.12'
compile("org.springframework.boot:spring-boot-starter-web")
//compile("org.thymeleaf:thymeleaf-spring4") //first try
// compile("nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect") //first try
compile 'org.springframework:spring-webmvc:3.0.0.RELEASE'
// https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf-spring4 //secound try
compile group: 'org.thymeleaf', name: 'thymeleaf-spring4', version: '3.0.0.RELEASE'
// compile group: 'org.thymeleaf', name: 'thymeleaf-spring4', version: '4.1.6.RELEASE' //third try
}
html文件:
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Learning Spring Boot - Chapter 1</title>
</head>
<body>
<p th:text="'Hello, ' + ${name}"></p>
<ol>
<li th:each="chapter : ${chapters}" th:text="${chapter}"></li>
</ol>
</body>
</html>
要使用spring boot CLI启动我的应用程序。当我一直在使用&#34; spring run&#34;在命令提示符下,我总是遇到同样的错误: 找不到工件:thymeleaf-spring4:jar:in local(file:/ C:/ Users / kubas / repository)。
我试图添加&#34; thymeleaf-spring4.jar&#34; - 从maven页面下载到文件夹&#34; repository&#34;什么都没有,总是一样的错误。
有人可以对此提出建议吗?
答案 0 :(得分:0)
我通过从本地存储库添加依赖项来解决问题:
buildscript {
repositories {
mavenLocal()
}
dependencies {
classpath("org.thymeleaf:thymeleaf-spring5:3.0.9.RELEASE")
}
}
repositories {
mavenCentral()
}
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.3.11'
testCompile group: 'junit', name: 'junit', version: '4.12'
compile("org.springframework.boot:spring-boot-starter-web")
compile("nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect") //first try
compile 'org.springframework:spring-webmvc:4.0.6.RELEASE'
compile 'org.springframework:spring-web:4.0.6.RELEASE' //@EnableWebMvc @ComponentScan
}
现在百里香取自C:\ Users \ kubas \ org \ thymeleaf \ thymeleaf-spring5
我必须将app.groovy中的注释更改为@Grab("thymeleaf-spring5")
但现在我无法配置模板文件的路径。我这个文件的路径是: F:\ gradle_login_aPP \ src \ main \ resources \ templates ...这是错误:
找不到模板位置:classpath:/ templates /
我尝试在\ src \ main \ resources \中添加application.properties文件,但它不起作用。我知道可以添加deafult preffix,但我找不到有关文件的信息,我需要添加它。任何建议,如何使用gradle项目运行此模板?
答案 1 :(得分:0)
我解决了这个问题。我使用了.html文件,这就是在控制器类中使用此文件的方式:
@RestController
class LoginServiceApplication {
@RequestMapping("/")
String home() {
def htmlContent = new File("F:\\APKA_W_SPRINGU\\Spring-apps-master\\AppWithLoginPage\\LoginService\\src\\main\\resources\\templates\\index.html").text
htmlContent
}
}
对于第一个问题-我所要做的就是使用按钮run在intelijj中运行主类(类不得包含@Grab注释!),在解决此问题之前,我正在使用spring CLI,这是一个问题。现在一切正常。