1

ドロップダウンに表示する項目のリストを設定する次の ViewModel があります。

myController/インデックス

// set view model list of items to populate in drop down...viewModel contains listItems as   
   List<String>
viewModel.setlistitems(//list retrieved 3rd party);
// add view model to model to display items in drop down list viewModel.getlistitems() returns List<String>
model.addAttribute("viewModel", viewModel);  

次に、index.jsp にドロップダウン リストを作成し、リストに適切に入力します。

 <form class="form-horizontal" action="myController/indexSubmit" method="post">
    <select name="selectList" class="form-control" placeholder=".input-medium" height>
        <c:forEach items="${viewModel.getlistitems()}" var="item" varStatus="count"> 
            <option value="${count.index}">${item }</option>
        </c:forEach>
    </select>   
    <button type="submit" class="btn btn-primary btn-medium">Submit</button>   
</form>  

投稿を送信すると、選択したドロップダウンのインデックスが「selectList」内で問題なく取得されます。ただし、ビュー モデルからリスト アイテムを取得しようとすると、null になりますか?

@RequestMapping(value="indexSubmit", method = RequestMethod.POST)
  public String indexSubmit( @RequestParam String selectList, 
      @ModelAttribute("viewModel") ViewModel viewModel, ModelMap model) {

    System.out.println("Selected Item: " + selectList);  // returns the index fine
    System.out.println("Items: " + viewModel.getlistitems());  // returns NULL!!  this was the same list call that populated the drop down
    return "redirect:/index"; 
} 

1)list<string>ビュー モデル内からバックを返して、選択したアイテム インデックスを介して参照するアイテムのリストを取得し、クエリ パラメータとして返す方法、または 2) インデックスの代わりに選択したアイテムの実際の文字列リテラルを取得する方法を教えてください。

どうも!

4

1 に答える 1

1
model.addAttribute("nameOfList", viewModel.getlistitems());

次に、フォームで spring タグ lib を使用します

<form:select path="modelPath">
    <form:option value="0" label="Select an Option" />
    <form:options items="${nameOfList}" />
</form:select>
于 2013-08-28T06:55:20.773 に答える