Thymeleaf与春季启动和Scala不呈现HTML页面

时间:2014-11-18 07:54:22

标签: scala spring-boot thymeleaf

我在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

1 个答案:

答案 0 :(得分:3)

如果您希望回复呈现视图,请使用@Controller而非@RestController

为您的课程添加注释

@RestController告诉Spring返回值是响应的主体,即不会发生视图呈现。它相当于使用@Controller@ResponseBody的每个方法对类进行注释。