Spring MVCドロップダウンボックスの例

Spring MVCドロップダウンボックスの例

Spring MVCでは、フォームタグ–<form:select /><form:option />、または<form:options />がHTMLドロップダウンボックスのレンダリングに使用されます。 次の例を参照してください。

//SimpleFormController
protected Map referenceData(HttpServletRequest request) throws Exception {
    Map referenceData = new HashMap();
    Map country = new LinkedHashMap();
    country.put("US", "United Stated");
    country.put("CHINA", "China");
    country.put("SG", "Singapore");
    country.put("MY", "Malaysia");
    referenceData.put("countryList", country);
}

1.

$ {countryList}でドロップボックスボックスを生成します。

HTMLコード

2. <フォーム:オプション/>

はselectタグで囲む必要があります。


    

HTMLコード

3. <フォーム:オプション/>

<form:option />もselectタグで囲む必要があり、単一のselectオプションをレンダリングします。次の組み合わせを参照してください。


   
   

HTMLコード

4. リストボックス

リストボックスを表示するには、selectタグに「multiple=true」属性を追加するだけです。

HTML code、国の選択を処理するための非表示の値。


Select a dropdown box value
ドロップダウンボックス、リストボックス、または「選択」オプションの場合、「path」または「property」が「select option key value」と等しい場合s "、オプションは自動的に選択されます。

完全なドロップダウンボックスの例

Spring MVCの完全なドロップダウンボックスの例を考えてみましょう。

1. モデル

ドロップダウンボックスの値を格納する顧客モデルクラス。

ファイル:Customer.java

package com.example.customer.model;

public class Customer{

    String country;
    String javaSkills;

    public String getCountry() {
        return country;
    }
    public void setCountry(String country) {
        this.country = country;
    }
    public String getJavaSkills() {
        return javaSkills;
    }
    public void setJavaSkills(String javaSkills) {
        this.javaSkills = javaSkills;
    }
}

2. コントローラ

フォームのドロップダウンボックスの値を処理するためのSimpleFormController。 Javaスキルの「Spring」をデフォルトのドロップダウンボックスの選択値として作成します。

ファイル:DropDownBoxController.java

package com.example.customer.controller;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import com.example.customer.model.Customer;

public class DropDownBoxController extends SimpleFormController{

    public DropDownBoxController(){
        setCommandClass(Customer.class);
        setCommandName("customerForm");
    }

    @Override
    protected Object formBackingObject(HttpServletRequest request)
        throws Exception {

        Customer cust = new Customer();

        //make "Spring" as the default java skills selection
        cust.setJavaSkills("Spring");

        return cust;

    }

    @Override
    protected ModelAndView onSubmit(HttpServletRequest request,
        HttpServletResponse response, Object command, BindException errors)
        throws Exception {

        Customer customer = (Customer)command;
        return new ModelAndView("CustomerSuccess","customer",customer);

    }

    protected Map referenceData(HttpServletRequest request) throws Exception {

        Map referenceData = new HashMap();

        Map country = new LinkedHashMap();
        country.put("US", "United Stated");
        country.put("CHINA", "China");
        country.put("SG", "Singapore");
        country.put("MY", "Malaysia");
        referenceData.put("countryList", country);

        Map javaSkill = new LinkedHashMap();
        javaSkill.put("Hibernate", "Hibernate");
        javaSkill.put("Spring", "Spring");
        javaSkill.put("Apache Wicket", "Apache Wicket");
        javaSkill.put("Struts", "Struts");
        referenceData.put("javaSkillsList", javaSkill);

        return referenceData;
    }
}

3. バリデーター

country」および「javaSkills」ドロップダウンボックスが選択されていることを確認するための単純なフォームバリデーター。

ファイル:DropDownBoxValidator.java

package com.example.customer.validator;

import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;

import com.example.customer.model.Customer;

public class DropDownBoxValidator implements Validator{

    @Override
    public boolean supports(Class clazz) {
       //just validate the Customer instances
       return Customer.class.isAssignableFrom(clazz);
    }

    @Override
    public void validate(Object target, Errors errors) {

       Customer cust = (Customer)target;

       ValidationUtils.rejectIfEmptyOrWhitespace(errors, "javaSkills", "required.javaSkills");

       if("NONE".equals(cust.getCountry())){
        errors.rejectValue("country", "required.country");
       }
    }
}

ファイル:message.properties

required.country = Please select a country!
required.javaSkills = Please select a java Skill!

4. View

Springのフォームタグ<form:select /><form:option />、および<form:options />の使用法を示すJSPページ。

ファイル:CustomerForm.jsp

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>






    

Spring's form select, option, options example

Country :
Java Skills :

JSTLを使用して、送信された値を表示します。

ファイル:CustomerSuccess.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>



    

Spring's form select, option, options example

Country : ${customer.country}
Java Skills : ${customer.javaSkills}

5. Spring Beanの構成

それをすべてリンクしてください〜



  

    
        
        

        
        
            
        
    

    
    
        
    

    
        
            /WEB-INF/pages/
        
        
            .jsp
        
    

6. Demo

SpringMVC-DropDownBox-Example-1

ユーザーがフォームの送信中にドロップダウンボックスの値を選択しなかった場合は、エラーメッセージを表示して強調表示します。

SpringMVC-DropDownBox-Example-2

フォームが正常に送信された場合、送信されたドロップダウンボックスの値を表示するだけです。

SpringMVC-DropDownBox-Example-3

ソースコードをダウンロード

ダウンロード–SpringMVCForm-DropDownBox-Example.zip(10KB)