2017-03-03 7 views
0

は、一般的に、我々はコントローラで、このようなJSPからフィールドの掲示値を取得することができます:フィールドが複数あるselect要素である場合選択した倍数の値を取得するにはどうすればよいですか?

@Controller 
public class someClass { 

    @RequestMapping(value = "/someUrl", method = RequestMethod.POST) 
    public ModelAndView someMethodName(@RequestParam Map<String, String> params) { 

     for (Map.Entry<String, String> param : params.entrySet()) { 

      // field name is got from param.getKey() , field value is got from param.getValue() 

     } 

     return new ModelAndView("redirect:/someOtherUrl"); 

    } 

} 

問題が発生しました。どのように値を選択するのですか?

答えて

1

編集:How to get multiple selected values from select box in JSP?には正しい答えがあります。結果を得るにはList<String>のマッピングを使用してください。

これは正しいのでこれを残しておきます;-) エントリを反復処理しませんが、keySetを使用してください。これらは設計通りに複製されません。

すなわち:

for (String key: params.keySet()) { 
    // field name key, field value is params.get(key) 
} 
+0

私はいつも、私は複数のオプションを選択した場合でもただ一つの値を得ました!注:私は '[] 'がある場合とない場合のselect要素の' name'属性でテストしました – pheromix

+0

ああ、私は誤解しました。 http://stackoverflow.com/questions/2407945/how-to-get-multiple-selected-values-from-select-box-in-jspによると、マップまたはリストの代わりにマップを使用しようとします rob

+0

あなたの最後のコメントは正しい答えですので、あなたの答えを変更する必要があります:) – pheromix

関連する問題