Exemple de bouton radio et de boutons radio MVC Spring

Exemple de bouton-poussoir et de boutons-poussoirs Spring MVC

Dans Spring MVC,<form:radiobutton /> est utilisé pour rendre un bouton radio HTML, et les valeurs des boutons radio sont codées en dur dans la page JSP; Alors que le<form:radiobuttons /> est utilisé pour rendre plusieurs boutons radio, et que les valeurs des boutons radio sont générées au moment de l'exécution.

Dans ce tutoriel, nous vous montrons comment utiliser<form:radiobutton /> et<form:radiobuttons />.

1.

Générez un bouton radio et codez en dur la valeur.

public class Customer{
    String sex;
    //...
}
Male
Female

Default value…
Pour faire de «Male» la valeur sélectionnée par défaut dans les boutons radio ci-dessus, il suffit de définir la propriété «sex» sur «M», par exemple :

public class Customer{
    String sex = "M";
    //...
}

or

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

    Customer cust = new Customer();
    //Make "Male" as the default radio button selected value
    cust.setSex("M");

    return cust;

}

2.

Générez plusieurs boutons radio et les valeurs sont générées lors de l'exécution.

//SimpleFormController...
protected Map referenceData(HttpServletRequest request) throws Exception {

    Map referenceData = new HashMap();

    List numberList = new ArrayList();
    numberList.add("Number 1");
    numberList.add("Number 2");
    numberList.add("Number 3");
    numberList.add("Number 4");
    numberList.add("Number 5");
    referenceData.put("numberList", numberList);

    return referenceData;
}

Default value…
Pour faire de «Number 1» la valeur sélectionnée par défaut dans les boutons radio ci-dessus, il suffit de définir la propriété «favNumber» sur «Number 1», par exemple :

public class Customer{
    String favNumber = "Number 1";
    //...
}

or

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

    Customer cust = new Customer();
    //Make "Number 1" as the default radio button selected value
    cust.setFavNumber("Number 1")

    return cust;
}

Note
Pour la sélection du bouton radio, tant que le «path» ou «property» est égal au «radio button value», le bouton radio sera être sélectionné automatiquement.

Exemple de bouton radio complet

Voyons un exemple de bouton radio Spring MVC complet:

1. Modèle

Une classe de modèle client pour stocker la valeur du bouton radio.

Fichier: Customer.java

package com.example.customer.model;

public class Customer{

    String favNumber;
    String sex;

    public String getFavNumber() {
        return favNumber;
    }
    public void setFavNumber(String favNumber) {
        this.favNumber = favNumber;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }

}

2. Manette

UnSimpleFormController pour gérer la valeur du bouton radio du formulaire. Définissez le bouton radio «M» comme valeur sélectionnée par défaut.

Fichier: RadioButtonController.java

package com.example.customer.controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
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 RadioButtonController extends SimpleFormController{

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

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

        Customer cust = new Customer();
        //Make "Make" as default radio button checked value
        cust.setSex("M");

        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();

        List numberList = new ArrayList();
        numberList.add("Number 1");
        numberList.add("Number 2");
        numberList.add("Number 3");
        numberList.add("Number 4");
        numberList.add("Number 5");
        referenceData.put("numberList", numberList);

        return referenceData;
    }
}

3. Validateur

Un validateur de formulaire simple pour s'assurer que le bouton radio «sex» et «number» est sélectionné.

Fichier: RadioButtonValidator.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 RadioButtonValidator 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, "sex", "required.sex");
        ValidationUtils.rejectIfEmptyOrWhitespace(errors, "favNumber", "required.favNumber");

    }
}

Fichier: message.properties

required.sex = Please select a sex!
required.favNumber = Please select a number!

4. View

Une page JSP pour montrer l'utilisation des balises de formulaire de Spring<form:radiobutton /> et<form:radiobuttons />.

Fichier: CustomerForm.jsp

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






    

Spring's form radio button example

Sex : Male Female
Choose a number :

Utilisez JSTL pour parcourir les valeurs des boutons radio soumis et l'afficher.

Fichier: CustomerSuccess.jsp

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



    

Spring's form radio button example

Sex : ${customer.sex}
Favourite Number : ${customer.favNumber}

5. Configuration de Spring Bean

Liez le tout ~



  

    
        
        

        
        
            
        
    

    
    
        
    

    
        
            /WEB-INF/pages/
        
        
            .jsp
        
    

6. Demo

SpringMVC-RadioButton-Example-1

Si l'utilisateur n'a sélectionné aucune valeur de bouton radio lors de l'envoi du formulaire, affichez et mettez en surbrillance le message d'erreur.

SpringMVC-RadioButton-Example-2

Si le formulaire est soumis avec succès, affichez simplement les valeurs des boutons radio soumis.

SpringMVC-RadioButton-Example-3

Télécharger le code source

Téléchargez-le -SpringMVCForm-RadioButton-Example.zip (9 Ko)