Spring MVC form:selectタグを使うサンプル

環境
Spring 5.2.22
Eclipse 4.24.0

操作方法
1.画面表示用モデルを作成します(SelectModel.java)

public class SelectModel {
    private String selectedCity;

    private List<String> selectedCitys;
}

2.コントローラは以下のようになります。

@Controller
public class FormController {
    @RequestMapping(value = "/select", method = RequestMethod.GET)
    public String select(Model model) {
          //Cityクラスのオブジェクト型のリストの宣言
        List<City> citys = new ArrayList<>();
            
            // オブジェクトの要素をリストに追加する
        citys.add(new City("101", "東京"));
        citys.add(new City("202", "大阪"));
        citys.add(new City("303", "福岡"));
            
            //画面表示用モデルの宣言
        SelectModel sme = new SelectModel();
        sme.setSelectedCity("202");
            
            //String型のリストの宣言
        List<String> selectedCitys = new ArrayList<String>();
        selectedCitys.add("101");
        selectedCitys.add("303");
            
        sme.setSelectedCitys(selectedCitys);
            
            //属性追加
        model.addAttribute("selectModel", sme);
        model.addAttribute("citys", city);

        return "select";
    }
}

3.JSP画面

書式
form:select path="フィールド名" items="${リストまたは配列名}" itemLabel="クラスのプロパティ名" itemValue="city" size="3″ multiple="true"
itemLabel labelを出力するitemsで指定したクラスのプロパティ名
itemValue valueを出力するitemsで指定したクラスのプロパティ名
multiple HTML標準のmultiple属性
size    HTML標準のsize属性

サンプルコード

<form:form modelAttribute="selectModel">
 <form:select path="selectedCity" items="${citys}" itemLabel="title" itemValue="city" /><br>
 <form:select path="selectedCitys" items="${citys}" itemLabel="title" itemValue="city" size="3" multiple="true" />
</form:form>

 

SpringMVC

Posted by arkgame