Пример радиопереключателя и радиопереключателя Spring MVC

Весенний MVC радиокнопка и пример радиокнопок

В Spring MVC<form:radiobutton /> используется для рендеринга переключателя HTML, а значения переключателей жестко закодированы внутри страницы JSP; Хотя<form:radiobuttons /> используется для отображения нескольких переключателей, а значения переключателей генерируются во время выполнения.

В этом руководстве мы покажем вам, как использовать<form:radiobutton /> и<form:radiobuttons />.

1. <форма: радиопереключатель />

Создайте переключатель и жестко закодируйте значение.

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

Default value…
Чтобы сделать «Male» выбранным по умолчанию значением в вышеуказанных переключателях, просто установите для свойства «sex» значение «M», Например :

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. <форма: радиокнопки />

Генерация нескольких переключателей, и значения генерируются во время выполнения.

//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…
Чтобы сделать «Number 1» выбранным по умолчанию значением в вышеуказанных переключателях, просто установите для свойства «favNumber» значение «Number 1», Например :

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
Для выбора переключателя, пока «path» или «property» равно «radio button value», переключатель будет выбираться автоматически.

Пример полного переключателя

Давайте рассмотрим полный пример переключателя Spring MVC:

1. модель

Класс модели клиента для хранения значения переключателя.

Файл: 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. контроллер

SimpleFormController для обработки значения переключателя формы. Установите переключатель «M» в качестве значения по умолчанию.

Файл: 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

Простой валидатор формы, чтобы убедиться, что выбраны переключатели «sex» и «number».

Файл: 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");

    }
}

Файл: message.properties

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

4. View

Страница JSP, показывающая использование тегов формы Spring<form:radiobutton /> и<form:radiobuttons />.

Файл: CustomerForm.jsp

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






    

Spring's form radio button example

Sex : Male Female
Choose a number :

Используйте JSTL для циклического отображения представленных значений переключателей и их отображения.

Файл: 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

Связать все это ~



  

    
        
        

        
        
            
        
    

    
    
        
    

    
        
            /WEB-INF/pages/
        
        
            .jsp
        
    

6. Demo

Доступ к странице -http://localhost:8080/SpringMVCForm/radiobutton.htm

SpringMVC-RadioButton-Example-1

Если пользователь не выбрал значение переключателя при отправке формы, отобразите и выделите сообщение об ошибке.

SpringMVC-RadioButton-Example-2

Если форма отправлена ​​успешно, просто отобразите отправленные значения переключателя.

SpringMVC-RadioButton-Example-3

Скачать исходный код