我在Scala中使用Thymeleaf和Springboot。 当我从HTML页面执行get请求时,它会转到控制器并将下一个HTML文件名作为字符串而不是整个HTML返回。
我的 build.gradle
compile("org.thymeleaf:thymeleaf-spring4")
compile("nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect")
compile("org.springframework.boot:spring-boot-starter-thymeleaf")
我已将所有html放在src / main / resources / templates
中主要HTML
<html xmlns:th="http://www.thymeleaf.org">
<a href="#" th:href="@{/api/v1/users/userval}">Login</a>
控制器
@RestController
@RequestMapping(value = Array("/api/v1/users"),produces = Array("text/html"))
class UserController {
@RequestMapping(method = Array(RequestMethod.POST))
@ResponseStatus(value = HttpStatus.CREATED)
def createUser(@Valid @RequestBody user:User) = {
UserRepository.populateUser(user)
}
@RequestMapping(value=Array("/userval"),method = Array(RequestMethod.GET))
def userLoginForm( model:Model) = {
model.addAttribute("userLogin", new UserLogin())
"login"}
@RequestMapping(value=Array("/userval"),method = Array(RequestMethod.POST))
def getUser(@ModelAttribute userLogin:UserLogin, bindingResult: BindingResult) = {
"reservations"
}
当我点击主HTML中的登录链接时,我将“login”作为字符串而不是login.html
答案 0 :(得分:3)
如果您希望回复呈现视图,请使用@Controller
而非@RestController
@RestController
告诉Spring返回值是响应的主体,即不会发生视图呈现。它相当于使用@Controller
和@ResponseBody
的每个方法对类进行注释。