Spring – MVC 表单复选框
在本文中,我们将了解Spring MVC Checkbox和 Checkboxes 标签。我们将在 Spring 工具套件 (STS) 中创建一个基本的 Spring MVC 项目,以使用form:checkbox和form: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 Tool Suite 中创建一个 Spring MVC 项目。
- 在 STS 中,根据开发人员选择创建项目时,它将下载所有必需的 maven 依赖项、*.jar、lib 文件,并提供嵌入式服务器。
- 下面是 Spring MVC 项目创建后的最终项目结构 *. Java和 *.jsp 文件。
实现:要创建的文件如下:
- 家。 Java – Bean 类 – 定义属性和属性的 getter/setter 方法。
- 家庭控制器。 Java – 控制器类 – 处理用户请求并生成输出。
- home.jsp – 与用户交互的 Jsp 文件以进行输入。
- 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、值等。我们可以根据我们的要求包含任意数量的属性。
在此示例中,我们包含以下属性,
- path –指定需要与数据绑定的属性的路径。在这里,数据绑定到复选框中的持续时间属性和复选框标签中的框架属性。
- value –指定特定复选框的值。
- label –显示复选框值的名称。
- disabled –这是一个布尔属性,当值为 true 时禁用复选框。默认情况下,该值为 false。
- items –显示列表中的复选框名称。
- 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/以获取以下屏幕。
正如我们指定的,
- disabled=true for 6 Months 复选框,它在屏幕上显示为禁用。
- delimiter = |,指定的分隔符显示在复选框名称之间。
现在,选择复选框值并单击提交按钮。
- 提交页面后,我们将获得以下输出,其中包含我们选择的详细信息。