2017-06-02 8 views
1

thymeleafテンプレート内のSpring MVCでモデルに追加する変数にアクセスするにはどうすればよいですか?私はthymeleafテンプレート内などの変数VAR1、VAR5、var6にアクセスするにはどうすればよいspringmvcを使用してthymeleafテンプレートの変数にアクセスする方法

@Controller 
public class ThymeLeafController { 

    @GetMapping("/thyme") 
    public void thymeleaf(ModelAndView modelAndView) { 
     modelAndView.addObject("var1", "var1"); 
     modelAndView.addObject(Arrays.asList("var2", "var3", "var4")); 
     modelAndView.getModel().put("var5", "var5"); 
     modelAndView.getModelMap().addAttribute("var6", "var6"); 
     modelAndView.getModelMap().addAttribute(Arrays.asList("var7", "var8", "var9")); 

     modelAndView.setViewName("thymeleaf"); 
    } 
} 

:私は、次のコントローラのコードがありますか?

<!DOCTYPE html> 
<html lang="en" xmlns:th="http://www.thymeleaf.org"> 
<head> 
    <meta charset="UTF-8" /> 
    <title>Thymeleaf</title> 
</head> 
<body> 
<div th:if="#{var1}"></div> 

</body> 
</html> 
+2

これは非常に基本的である、あなたはチュートリアルを試してみたのですか? – holmis83

+0

私は見て、フォーム変数をバインドする方法を見つけました。それは私が本当に必要なものです。しかし、私はまだモデルに格納されているテンプレートで変数を使用する方法を知らない。あなたはチュートリアルを教えてくれますか?テンプレート内の変数にアクセスできなくなっている可能性があります。 @ModelAttributeは期待どおりに動作します。 – Ali

+0

'th:text =" $ {val1} "'をチェックしましたか? – Zionz

答えて

1

行動:属性へのアクセス

は、それらが追加された場所に依存します。属性がModelAndViewオブジェクトに追加された場合は、「$ {modelAndView.model.xxxx}」からアクセスする必要があります。ここでxxxxは属性名です。属性がModelオブジェクトに追加された場合は、属性名自体 "$ {attributeName}"を使用してアクセスできます。以下の例を参照してください。

コントローラー:

@GetMapping("/thyme") 
public void thymeleaf(ModelAndView modelAndView, Model model) { 
    modelAndView.addObject("var1", "var1"); 
    modelAndView.addObject(Arrays.asList("var2", "var3", "var4")); 
    modelAndView.getModel().put("var5", "var5"); 
    modelAndView.getModelMap().addAttribute("var6", "var6"); 
    modelAndView.getModelMap().addAttribute(Arrays.asList("var7", "var8", "var9")); 

    model.addAttribute("attribute1", "attributeValue1"); 

} 

テンプレート:

<!DOCTYPE html> 
<html lang="en" xmlns:th="http://www.thymeleaf.org"> 
<head> 
    <meta charset="UTF-8"/> 
    <title>Thymeleaf</title> 
</head> 
<body> 
<div th:text="${attribute1}"></div> 
<div th:text="${modelAndView.model}"></div> 
<div th:text="${modelAndView.model.var1}"></div> 
</body> 
</html> 

出力:

 
attributeValue1 
{var1=var1, stringList=[var7, var8, var9], var5=var5, var6=var6} 
var1 
関連する問題