Exemple de menu déroulant Spring MVC

Exemple de liste déroulante Spring MVC

Dans Spring MVC, les balises de formulaire -<form:select />,<form:option /> ou<form:options />, sont utilisées pour afficher la liste déroulante HTML. Voir les exemples suivants:

//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.

Générez une boîte de dépôt avec $ {countryList}.

Code HTML

2.

Le doit être entouré de la balise select.


    

Code HTML

3.

Les<form:option /> doivent également être entourés de la balise de sélection et rendre une seule option de sélection, voir la combinaison suivante.


   
   

Code HTML

4. Zone de liste

Pour rendre une zone de liste, ajoutez simplement l'attribut «multiple=true» dans la balise de sélection.

HTML code, avec une valeur masquée pour gérer les sélections de pays.


Select a dropdown box value
Pour la liste déroulante, la zone de liste ou les options «sélectionner», tant que le «path» ou «property» est égal au «select option key value “, les options seront sélectionnées automatiquement.

Exemple de liste déroulante complète

Voyons un exemple de liste déroulante Spring MVC complète:

1. Modèle

Une classe de modèle client pour stocker la valeur de la liste déroulante.

Fichier: 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. Manette

UnSimpleFormController pour gérer la valeur de la liste déroulante du formulaire. Définissez les "Spring" des compétences Java comme valeur sélectionnée par défaut dans la liste déroulante.

Fichier: 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. Validateur

Un validateur de formulaire simple pour s'assurer que la liste déroulante «country» et «javaSkills» est sélectionnée.

Fichier: 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");
       }
    }
}

Fichier: message.properties

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

4. View

Une page JSP pour montrer l'utilisation des balises de formulaire de Spring<form:select />,<form:option /> et<form:options />.

Fichier: CustomerForm.jsp

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






    

Spring's form select, option, options example

Country :
Java Skills :

Utilisez JSTL pour afficher la valeur soumise.

Fichier: 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. Configuration de Spring Bean

Liez le tout ~



  

    
        
        

        
        
            
        
    

    
    
        
    

    
        
            /WEB-INF/pages/
        
        
            .jsp
        
    

6. Demo

SpringMVC-DropDownBox-Example-1

Si l'utilisateur n'a sélectionné aucune valeur de liste déroulante lors de la soumission du formulaire, affichez et mettez en surbrillance le message d'erreur.

SpringMVC-DropDownBox-Example-2

Si le formulaire est envoyé avec succès, affichez simplement les valeurs de la liste déroulante soumise.

SpringMVC-DropDownBox-Example-3

Télécharger le code source

Téléchargez-le -SpringMVCForm-DropDownBox-Example.zip (10 Ko)