Рубрики
Без рубрики

Пример флажка и флажков Spring MVC

– Пример флажка и флажков Spring MVC

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

В этом уроке мы покажем вам 3 различных способа отображения полей флажков HTML:

1. <форма:флажок/> – Один Флажок

Создайте классический одиночный флажок с логическим значением.

public class Customer{
	boolean receiveNewsletter;
	//...
}

public class Customer{
	boolean receiveNewsletter = true;
	//...
}

2. <форма: флажок/> – Несколько Флажков

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

public class Customer{
	String [] favLanguages;
	//...
}
Java 
C++ 
.Net
        //SimpleFormController...
        @Override
	protected Object formBackingObject(HttpServletRequest request)
		throws Exception {
		
		Customer cust = new Customer();
		cust.setFavLanguages(new String []{"Java"});
		
		return cust;
		
	}

3. <форма: флажки/> – Несколько Флажков

Создайте список времени выполнения для значения флажков и свяжите его с тегом формы Spring <форма: флажки> .

        //SimpleFormController...
	protected Map referenceData(HttpServletRequest request) throws Exception {
		
		Map referenceData = new HashMap();
		List webFrameworkList = new ArrayList();
		webFrameworkList.add("Spring MVC");
		webFrameworkList.add("Struts 1");
		webFrameworkList.add("Struts 2");
		webFrameworkList.add("Apache Wicket");
		referenceData.put("webFrameworkList", webFrameworkList);
		
		return referenceData;
	}
 
         //SimpleFormController...
        @Override
	protected Object formBackingObject(HttpServletRequest request)
		throws Exception {
		
		Customer cust = new Customer();
		cust.setFavFramework(new String []{"Spring MVC","Struts 2"});
		
		return cust;
	}
 

Для нескольких флажков, если значение ” путь ” или ” свойство ” равно любому из ” значений флажка – ${динамический список} “, соответствующий флажок будет установлен автоматически.

Полный пример флажка

Давайте рассмотрим полный пример флажка Spring MVC:

1. Модель

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

Файл: Customer.java

package com.mkyong.customer.model;

public class Customer{
	
	//checkbox
	boolean receiveNewsletter = true; //checked it
	String [] favLanguages;
	String [] favFramework;

	public String[] getFavFramework() {
		return favFramework;
	}
	public void setFavFramework(String[] favFramework) {
		this.favFramework = favFramework;
	}
	public boolean isReceiveNewsletter() {
		return receiveNewsletter;
	}
	public void setReceiveNewsletter(boolean receiveNewsletter) {
		this.receiveNewsletter = receiveNewsletter;
	}
	public String[] getFavLanguages() {
		return favLanguages;
	}
	public void setFavLanguages(String[] favLanguages) {
		this.favLanguages = favLanguages;
	}
}

2. Контроллер

Контроллер SimpleFormController для обработки значения флажка формы.

Файл: CheckBoxController.java

package com.mkyong.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.mkyong.customer.model.Customer;

public class CheckBoxController extends SimpleFormController{
	
	public CheckBoxController(){
		setCommandClass(Customer.class);
		setCommandName("customerForm");
	}
	
	@Override
	protected Object formBackingObject(HttpServletRequest request)
		throws Exception {
		
		Customer cust = new Customer();
		
		//Make "Spring MVC" and "Struts 2" as default checked value
		cust.setFavFramework(new String []{"Spring MVC","Struts 2"});
		
		//Make "Java" as default checked value
		cust.setFavLanguages(new String []{"Java"});
		
		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);
	
	}
	
	//Generate the data for web framework multiple checkboxes
	protected Map referenceData(HttpServletRequest request) throws Exception {
		
		Map referenceData = new HashMap();
		List webFrameworkList = new ArrayList();
		webFrameworkList.add("Spring MVC");
		webFrameworkList.add("Struts 1");
		webFrameworkList.add("Struts 2");
		webFrameworkList.add("Apache Wicket");
		referenceData.put("webFrameworkList", webFrameworkList);
		
		return referenceData;
		
	}
}

3. Валидатор

Простой валидатор формы убедитесь, что свойство ” пять языков ” не пустое.

Файл: CheckBoxValidator.java

package com.mkyong.customer.validator;

import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
import com.mkyong.customer.model.Customer;

public class CheckBoxValidator 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;
		
		if(cust.getFavLanguages().length==0){
			errors.rejectValue("favLanguages", "required.favLanguages");
		}
	}
}

Файл: сообщение.свойства

required.favLanguages = Please select at least a favorite programming language!

4. Смотреть

Страница JSP, на которой показано использование тега формы Spring <форма:флажок/> и <форма: флажки/> .

Файл: CustomerForm.jsp

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






	

Spring's form checkbox example

Subscribe to newsletter? :
Favourite Languages : Java C++ .Net
Favourite Web Frameworks :

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

Файл: Успех клиента.jsp

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



	

Spring's form checkbox example

Receive Newsletter : ${customer.receiveNewsletter}
Favourite Languages : []
Favourite Web Frameworks : []

5. Конфигурация пружинных Бобов

Свяжите все это~



  

	
		
		

		
		
			
		
	

	
	
		
	

	
		
			/WEB-INF/pages/
		
		
			.jsp
		
	


6. Свяжите все это~

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

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

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

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

Рекомендации

  1. Рекомендации
  2. Рекомендации
  3. Рекомендации
  4. Рекомендации
  5. Рекомендации

Оригинал: “https://mkyong.com/spring-mvc/spring-mvc-checkbox-and-checkboxes-example/”