Spring MVC-Optionsfeld und Optionsfelder

Spring MVC Radiobutton und Radiobuttons Beispiel

In Spring MVC wird<form:radiobutton /> zum Rendern eines HTML-Optionsfelds verwendet, und die Optionsfeldwerte sind auf der JSP-Seite fest codiert. Während<form:radiobuttons /> zum Rendern mehrerer Optionsfelder verwendet wird und die Optionsfeldwerte zur Laufzeit generiert werden.

In diesem Tutorial zeigen wir Ihnen, wie Sie<form:radiobutton /> und<form:radiobuttons /> verwenden.

1.

Generieren Sie ein Optionsfeld und codieren Sie den Wert fest.

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

Default value…
Um "Male" als standardmäßig ausgewählten Wert in den obigen Optionsfeldern festzulegen, setzen Sie einfach die Eigenschaft "sex" auf "M". beispielsweise :

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.

Generieren Sie mehrere Optionsfelder, und die Werte werden zur Laufzeit generiert.

//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…
Um "Number 1" als standardmäßig ausgewählten Wert in den obigen Optionsfeldern festzulegen, setzen Sie einfach die Eigenschaft "favNumber" auf "Number 1". beispielsweise :

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
Bei der Auswahl des Optionsfelds wird das Optionsfeld angezeigt, solange „path“ oder „property“ gleich „radio button value“ ist automatisch ausgewählt werden.

Beispiel für ein vollständiges Optionsfeld

Denken wir an ein vollständiges Beispiel für ein Spring MVC-Optionsfeld:

1. Modell

Eine Kundenmodellklasse zum Speichern des Optionsfeldwerts.

Datei: 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. Regler

ASimpleFormController, um den Optionsfeldwert des Formulars zu verarbeiten. Stellen Sie das Optionsfeld "M" als Standardwert ein.

Datei: 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. Validator

Ein einfacher Formularvalidator, um sicherzustellen, dass das Optionsfeld "sex" und "number" ausgewählt ist.

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

    }
}

Datei: message.properties

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

4. View

Eine JSP-Seite, auf der die Verwendung der Spring-Formular-Tags<form:radiobutton /> und<form:radiobuttons /> angezeigt wird.

Datei: CustomerForm.jsp

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






    

Spring's form radio button example

Sex : Male Female
Choose a number :

Verwenden Sie JSTL, um die übergebenen Optionsfeldwerte zu durchlaufen und anzuzeigen.

Datei: 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. Spring Bean Konfiguration

Verknüpfe alles ~



  

    
        
        

        
        
            
        
    

    
    
        
    

    
        
            /WEB-INF/pages/
        
        
            .jsp
        
    

6. Demo

SpringMVC-RadioButton-Example-1

Wenn der Benutzer beim Absenden des Formulars keinen Optionsfeldwert ausgewählt hat, zeigen Sie die Fehlermeldung an und markieren Sie sie.

SpringMVC-RadioButton-Example-2

Wenn das Formular erfolgreich gesendet wurde, zeigen Sie einfach die gesendeten Optionsfeldwerte an.

SpringMVC-RadioButton-Example-3

Quellcode herunterladen

Laden Sie es herunter -SpringMVCForm-RadioButton-Example.zip (9KB)