0

ビューのドロップダウンをコントローラから設定された値で埋めるようにします。モデルを使用して私のコントローラ内の属性私は取得しています。このコードコントローラからハッシュマップを設定してthymeleafにドロップダウンを設定する方法

<div class="col-sm-3"> 
       <select class="form-control" name = "limit" id="limit" onchange="getList(this.value)"> 
        <option selected>-- select number of items--</option> 

        <option data-th-each="limit : ${limits}" 
             data-th-value="${limt.getKey()}" 
             data-th-text="${limt.getValue()}" > 

        </select> 
        </div> 

を使用している属性モデルを使用して設定された値とドロップダウンを移入するために、ビューのページでリストを制限

@RequestMapping(value = "/works", method = RequestMethod.GET) 
    public String searchWorks(Model model){ 
    Map< Integer, String > limits = new HashMap<Integer, String>(); 
     limits.put(20, "20件"); 
     limits.put(25, "25件"); 
     limits.put(30, "30件"); 
     limits.put(35, "35件"); 
     limits.put(40, "40件"); 
     limits.put(45, "45件"); 
     limits.put(50, "50件"); 
    model.addAttribute("limits",limits); 
    model.addAttribute("limit",limit); 
    return "workSituation"; 
    } 

を追加しましたエラー

caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "limt.getKey()" 

caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "limt.getValue()" 

これが原因です。実際にドロップダウンは7回(制限リスト内のレコード数)を反復されるが、キーと値がcode.Whatをフェッチすることができませんthymeleafを試すためにドロップダウンが

  <option value="20">20件</option> 
      <option value="25">25件</option> 
      <option value="30">30件</option> 
      <option value="35">35件</option> 
      <option value="40">40件</option> 
      <option value="45">45件</option> 
      <option value="50">50件</option> 
+0

これは 'limit.getKey()'ではなく 'limt.getKey()'です。 .getValue()と同じです。私は次のことについてはわかりませんが、あなたはdata-th-textの代わりに 'th:text =" "'とdata-th-valueの代わりに 'th:value =" "'を使いたいと思います。 data-th- *が同じことをするかどうかは正確には分かりません。 –

+0

ありがとうそれは正常に動作します。実際には、データth- *はthと同じことをします。私はリストを取得している順序で私は挿入されている理由は何でしょう –

+0

ハッシュマップは、要素の順序を維持しません。そのためにリンクされたハッシュマップを使ってみてください。データを知ってよかったですか?*事 –

答えて

0

でいっぱいにするための正しい方法であります次のようになります。

<option th:each="limit : ${limits.entrySet()}" th:value="${limit.key}" th:text="${limit.value}"></option> 
関連する問題