📜  Spring – MVC 表单复选框

📅  最后修改于: 2022-05-13 01:54:25.037000             🧑  作者: Mango

Spring – MVC 表单复选框

在本文中,我们将了解Spring MVC Checkbox和 Checkboxes 标签。我们将在 Spring 工具套件 (STS) 中创建一个基本的 Spring MVC 项目,以使用form:checkboxform:checkboxes标签创建复选框。

“spring-form.tld”标签库

Spring Framework中,我们可以使用Java Server Pages (JSP)作为视图组件。为了使用 JSP 实现视图,Spring Framework 提供了一个名为spring-form.tld的表单标签库,其中包含一些标签,用于评估错误、设置主题、格式化输入和输出国际化消息的字段。

'checkbox' 标签: 'checkbox' 是 spring-form.tld 库提供的标签之一。它呈现一个“复选框”类型的 HTML“输入”标签。

HTML


HTML


HTML
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>




Home page


  
    

Welcome to GeeksforGeeks!

                                                                                                                                                                                                                                                        
Enter your name:
Select duration of course:                       
Java Frameworks:
Submit
    
  


Java
// Java Program to Illustrate Home Class 
  
package com.geek.app;
  
// Class
public class Home {
  
    // Class data members
    public String name;
    public String duration;
    public String framework;
  
    // Getter
    public String getName() { return name; }
  
    // Setter
    public void setName(String name) { this.name = name; }
  
    // Getter
    public String getDuration() { return duration; }
  
    // Setter
    public void setDuration(String duration)
    {
        this.duration = duration;
    }
  
    // Getter
    public String getFramework() { return framework; }
  
    // Setter
    public void setFramework(String framework)
    {
        this.framework = framework;
    }
}


Java
// Java Program to Illustrate HomeController Class
  
package com.geek.app;
  
// importing required classes
import java.util.Arrays;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
  
// Annotation
@Controller
  
// Class
public class HomeController {
  
    // Annotation
    @RequestMapping(value = "/")
  
    public String viewHome(Model model)
    {
  
        // Creating an instance of Home class
        // inside this method
        Home home = new Home();
        model.addAttribute("home", home);
  
        return "home";
    }
  
    // Annotation
    @ModelAttribute("javaFramworks")
  
    // Method
    public List javaFramworksList()
    {
        List framework = Arrays.asList(
            "Apache Struts", "Spring", "Hibernate",
            "Grails", "Java Server Faces");
  
        return framework;
    }
  
    // Annotation
    @RequestMapping(value = "/submit",
                    method = RequestMethod.POST)
  
    // Method
    public String
    submit(@ModelAttribute("home") Home home)
    {
  
        return "summary";
    }
}


HTML
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>




Summary page


  
    

Hello ${home.name}!!

       Course Duration:     ${home.duration}     
    Frameworks Selected:     ${home.framework}   


'checkboxes' 标签: 'checkbox' 是 spring-form.tld 库提供的标签之一。它呈现多个具有“复选框”类型的 HTML“输入”标签。

HTML


Spring MVC 应用程序

我们将创建下面的 Spring MVC 应用程序,

Spring MVC – 复选框示例

创建应用程序的步骤

  1. 在 Spring Tool Suite 中创建一个 Spring MVC 项目。
  2. 在 STS 中,根据开发人员选择创建项目时,它将下载所有必需的 maven 依赖项、*.jar、lib 文件,并提供嵌入式服务器。
  3. 下面是 Spring MVC 项目创建后的最终项目结构 *. Java和 *.jsp 文件。

项目结构

实现:要创建的文件如下:

  1. 家。 Java – Bean 类 – 定义属性和属性的 getter/setter 方法。
  2. 家庭控制器。 Java – 控制器类 – 处理用户请求并生成输出。
  3. home.jsp – 与用户交互的 Jsp 文件以进行输入。
  4. summary.jsp – Jsp 文件,用于向用户显示处理后的输出。

A.文件:home.jsp

HTML

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>




Home page


  
    

Welcome to GeeksforGeeks!

                                                                                                                                                                                                                                                        
Enter your name:
Select duration of course:                       
Java Frameworks:
Submit
    
  

输出说明:

这是应用程序启动时向用户显示的主页。要使用 Spring 表单标签,首先我们需要在 Jsp 页面中包含 taglib URI—— “http://www.springframework.org/tags/form” 。在form标签-action中,方法属性用于映射页面提交时必须执行的控制器方法。复选框标签有许多属性,如路径、cssStyle、dir、值等。我们可以根据我们的要求包含任意数量的属性。

在此示例中,我们包含以下属性,

  1. path –指定需要与数据绑定的属性的路径。在这里,数据绑定到复选框中的持续时间属性和复选框标签中的框架属性。
  2. value –指定特定复选框的值。
  3. label –显示复选框值的名称。
  4. disabled –这是一个布尔属性,当值为 true 时禁用复选框。默认情况下,该值为 false。
  5. items –显示列表中的复选框名称。
  6. delimiter –指定在每个“输入”标签之间使用的分隔符,类型为“复选框”。这里我们使用'|'符号作为分隔符。

B.家。Java

Java

// Java Program to Illustrate Home Class 
  
package com.geek.app;
  
// Class
public class Home {
  
    // Class data members
    public String name;
    public String duration;
    public String framework;
  
    // Getter
    public String getName() { return name; }
  
    // Setter
    public void setName(String name) { this.name = name; }
  
    // Getter
    public String getDuration() { return duration; }
  
    // Setter
    public void setDuration(String duration)
    {
        this.duration = duration;
    }
  
    // Getter
    public String getFramework() { return framework; }
  
    // Setter
    public void setFramework(String framework)
    {
        this.framework = framework;
    }
}
  • 这是定义所需参数的Java bean 类。
  • 在这里,我们将名称、持续时间和框架定义为参数,以及它们的 getter/setter 方法来获取/设置属性的值。

C.家庭控制器。Java

Java

// Java Program to Illustrate HomeController Class
  
package com.geek.app;
  
// importing required classes
import java.util.Arrays;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
  
// Annotation
@Controller
  
// Class
public class HomeController {
  
    // Annotation
    @RequestMapping(value = "/")
  
    public String viewHome(Model model)
    {
  
        // Creating an instance of Home class
        // inside this method
        Home home = new Home();
        model.addAttribute("home", home);
  
        return "home";
    }
  
    // Annotation
    @ModelAttribute("javaFramworks")
  
    // Method
    public List javaFramworksList()
    {
        List framework = Arrays.asList(
            "Apache Struts", "Spring", "Hibernate",
            "Grails", "Java Server Faces");
  
        return framework;
    }
  
    // Annotation
    @RequestMapping(value = "/submit",
                    method = RequestMethod.POST)
  
    // Method
    public String
    submit(@ModelAttribute("home") Home home)
    {
  
        return "summary";
    }
}

输出说明:这是控制器类,它根据请求 URL 的映射执行方法。这里,@Controller 向容器传达这个类是 spring 控制器类。要使用这个注解,我们需要导入 org.springframework.stereotype.Controller 包。

注释 @RequestMapping 根据提供的值将请求 URL 映射到指定的方法。 o 使用这个注解,我们需要导入 org.springframework.web.bind.annotation.RequestMapping 包。注解@ModelAttribute,用于将方法参数或方法返回值绑定到命名模型属性。我们需要导入 org.springframework.web.bind.annotation.ModelAttribute 包。 RequestMethod 指定请求的类型,无论是获取请求还是发布请求。

D.文件:summary.jsp

HTML

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>




Summary page


  
    

Hello ${home.name}!!

       Course Duration:     ${home.duration}     
    Frameworks Selected:     ${home.framework}   
  • 这是处理请求后在浏览器中显示用户输入值的输出Jsp页面。

执行

  • 创建完所有需要的 . Java和 .jsp 文件,在服务器上运行项目。
  • 在项目上,运行方式-> 在服务器上运行。
  • 在 localhost 中选择服务器以运行应用程序。
  • 在浏览器中打开 URL: http://localhost:8080/app/以获取以下屏幕。

主页 – home.jsp

正如我们指定的,

  • disabled=true for 6 Months 复选框,它在屏幕上显示为禁用。
  • delimiter = |,指定的分隔符显示在复选框名称之间。

现在,选择复选框值并单击提交按钮。

输入的选择

  • 提交页面后,我们将获得以下输出,其中包含我们选择的详细信息。

输出——summary.jsp