2016-11-29 1948 views
1

在thymeleaf中是否有從上下文中輸出對象的json的方法?我可以在控制器內部做到這一點,但並不是真的想要。在thymeleaf模板中對JSON序列化的對象

控制器:

@RequestMapping("/{projectId}/edit") 
public String editProject(Model model, @PathVariable Long projectId) { 
    Project project = projectRepo.findOne(projectId); 
    // Below line works, but I want to put the object to the model 
    // model.addAttribute("project", new ObjectMapper().writeValueAsString(project)); 
    model.addAttribute("project", project); 
    return "project/edit"; 
} 

局部模板:

<script> 
    var app = new Vue({ 
     el: '#app', 
     data: { 
      project: [(${project})] 
     } 
    }); 
</script> 

回答

5

Thymeleaf這是否開箱,我想你只需要添加th:inline="javascript"

http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#script-inlining-javascript-and-dart

<script th:inline="javascript"> 
    var app = new Vue({ 
     el: '#app', 
     data: { 
      project: /*[[${project}]]*/ {} 
     } 
    }); 
</script> 
+0

謝謝,那是很大的。 {} –

+1

之後沒有分號,這不是JSON。它是Javascript。在發送JSON時,Thymeleaf將在單引號之間包裝名稱和值,其中來自客戶端的「JSON.parse」方法需要雙引號。 – Radu