关于Spring MVC中的表单标签库的使用

第 2-10 课:Spring MVC 表单标签库 前言 在正式开始学习本讲内容之前,先来思考一个问题,为什么要使用 Spring MVC 表单标签库?答案很简单,使用它是为了简化代码的开发,提高我们的开发效率,其实我们使用任何一款框架或者工具都是出于这个目的,为了实现快捷开发。 Spring MVC 表单标签库是如何来提高我们的开发效率呢?首先来做一个对比,业务场景:控制层返回业务数据到视图层,视图层需要使用 EL 将业务数据绑定到 JSP 页面... 阅读详情


普通的MVC设计模式中M代表模型层,V代表视图层,C代表控制器,SpringMVC是一个典型的MVC设置模式的框架,对于视图和控制器的优化很多,其中就有与控制器相结合的JSP的表单标签库。

我们先简单写一个JSP的文件,使用普通的HTML的表单:

复制代码
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10 <form action="action" method="post">
11 username:<input type="text" name="username"/>
12 password:<input type="password" name="password"/>
  <input type="submit" value="GO"/> 13 </form> 14 </body> 15 </html>
复制代码

这样显示效果是这样的:

 username: password:    

在实际使用的时候,Spring会提供一个表单标签库来渲染表单,这样可以直接将标签绑定到对象中,现在加入我有一个模型层

User.java

1 public User{
2     String password;
3     String username;
4     //此处代码略去
5     ...
6 }

如果我们使用表单标签库的标签来渲染,可以直接将标签绑定到User对象的password或者username。

在使用表单标签库的时候要先声明:

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

然而表单标签在不进行数据绑定是无法操作的,在运行程序的时候会报错,因为表单标签是依赖于数据绑定操作的。

我们在控制器中首先需要在这里新建一个User的引用,也就是说要有一个User对象才能使User对象的password和username绑定到input标签,所以在Controller中我们应该先做以下操作:

1 @RequestMapping(value="/action")//这里action的地址
2     public String InputName(Model model){
3         logger.info("Inputname called");
4         model.addAttribute("user", new User());//这里给视图层提供了数据的对象,用来数据绑定
5         return "JSPFile";//返回的是视图的文件名
6     }

接下来我们可以使用表单标签库了:

复制代码
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
13 <form:form commandName="user" action="action" method="post">
14 username:<form:input path="username"/><!--  input type="text" name="username"/><br/><br/-->
15 password:<form:password path="password"/><!--  input type="password" name="password"/-->
16 <input type="submit" value="GO"/>
17 </form:form>
18 </body>
19 </html>
复制代码

注意这里使用的表单标签库的标签,commandName属性是最重要的属性,定义了模型属性的名称,我们之前的控制器中的

 

model.addAttribute("user", new User());

传过来的是user,所以我们使用的user,之后的表单返回的就是这个模型的属性。

然后input标签中的path属性:

commandName中的属性值为user,而且path的属性为username,那么username的input标签被绑定到了user的username属性中。

要值得注意的一点是,我们在使用表单标签库的时候直接使用而没有进行数据绑定是无法使用的。

 

深入探索Spring MVC表单标签库与实践 在现代Web开发中,Spring MVC表单标签库提供了强大的工具集,用于创建Web表单和处理用户输入。本章将介绍Spring MVC表单标签库的基本概念和主要组件。我们将从整体上了解标签库如何简化表单操作,并概述它在Web应用中扮演的角色。Spring MVC表单标签库是Spring框架的一部分,专注于表单处理,为开发者提供了一种简洁和声明式的方法来构建和绑定HTML表单元素。这个标签库能够极大地方便与后端对象属性的映射,以及提供校验和错误处理等强大的功能。 阅读详情

相关推荐

spring 4.3.4核心开发包

截止2016/12/7最新GA版:spring框架的相关包(不包含javadoc和源码),版本号4.3.4。供大家下载学习,希望对大家有所助益!

解决jsp中引用spring的标签《%taglib%》出现报错的问题

项目背景: springboot+springMvc,页面使用jsp,在使用tomcat部署项目(没使用内置tomcat)后,访问时出现报错。 报错信息:访问页面时出现 “The absolute uri: [http://www.springframework.org/tags/form] cannot be resolved in either web.xml or the jar file...

q491978068的专栏 1175

ESP32小车DIY:从零搭建无线遥控智能车(附完整代码与避坑指南)

本文详细介绍了如何从零开始DIY一台基于ESP32的无线遥控智能小车。内容涵盖核心硬件选型、电路设计、低延迟ESP-NOW无线通信协议的配置与实战,以及双电机差速控制算法与PWM调速的实现。文章提供了完整的代码示例和关键的避坑指南,旨在帮助开发者快速构建稳定可靠的智能车平台,并为进一步的功能扩展奠定基础。

gamma的博客 468

JSP 页面识别不了标签tag <%@ taglib prefix="c" uri="..." %> uri: [...] cannot be resolved in

1,org.apache.jasper.JasperException: The absolute uri:http://java.sun.com/jsp/jstl/corecannot be resolved in either web.xml or the jar files depl...

chuncui2576的博客 1260

逆向解析喜马拉雅新版xm-sign算法:从dws.1.6.8.js到签名生成

本文详细解析了喜马拉雅新版xm-sign算法的逆向破解方法。通过定位核心JS文件dws.1.6.8.js,构建本地Node.js模拟执行环境,并解密关键参数cid与appKey,最终实现签名算法的本地化稳定生成,为数据采集提供可靠解决方案。

weixin_29250403的博客 210

从AP到ADSP:高通8650 AudioReach中GSL-Passthru-GPR的数据通路剖析

本文深入剖析了高通骁龙8650平台AudioReach架构中,音频数据从应用处理器(AP)到音频数字信号处理器(ADSP)的完整传输路径。重点解析了GSL(Graph Service Layer)如何封装命令,并通过Passthru驱动与GPR(Generic Packet Router)协同工作,实现跨处理器的高效、异步数据交换,揭示了现代手机复杂音频系统背后的核心通信机制。

cherry的博客 536

jsp 三大指令之(二,三):include taglib

2. include --&gt; 静态包含   * 与RequestDispatcher的include()方法的功能相似!   * &lt;%@include%&gt; 它是在jsp编译成java文件时完成的!他们共同生成一个java(就是一个servlet)文件,然后再生成一个class!   * RequestDispatcher的include()是一个方法,包含和被包含的是两个serv...

qq_20610631的博客 248

基于ENVI5.6与SARscape的哨兵一号时序InSAR实战:从数据准备到PS/SBAS结果解译

本文详细介绍了基于ENVI5.6与SARscape软件,利用哨兵一号(Sentinel-1)卫星数据,进行PS-InSAR与SBAS-InSAR时序分析,以监测地表形变的完整实战流程。内容涵盖从数据下载、软件配置、预处理、核心处理步骤到结果解译与质量评估,重点解析了PS与SBAS方法的关键参数设置、常见问题及解决方案,旨在帮助用户掌握从数据准备到成果分析的完整技术链条。

oo7890的博客 633

Spring MVC 第三章:maven问题解决和Form表单初始化

在写项目过程中我们会遇到一些奇怪的问题: 比如: 1. maven项目无法创建新项目,即使通过加大虚拟内存还是不行,只有添加新的workSpace才有效果。 2.我们在使用maven依赖的时候,有时候会无法索引出想要的库。我们可以通过windows--show view -- Maven Repositories 进行重新加载: 3.我们在升级web.xml的过程中发现,如果将版本提升到version="3.1",会有波浪线提示,其实就是版本不匹配。 此时,我们可以通过手动更..

逼哥很疯狂的博客 1083

YOLOv8 PCB缺陷检测系统全流程实战:从开发到UI展示详解

毕设路上难免有波折,但只要跟着这个教程把“数据集处理、模型训练、UI开发”每一步都落实,你就已经超越了大多数同学。这个“PCB缺陷检测系统”既有技术深度(YOLOv8是工业级主流算法),又有工程价值(解决电子制造的实际痛点),还具备出色的可视化展示——这样的毕设,拿高分是水到渠成的事。

FJN110的博客 214

PointNet++改进策略 :模块改进 | x-Conv | PointCNN, 结合局部结构与全局排列提升模型性能

这篇论文介绍了一种名为PointCNN的方法,旨在从点云(point cloud)数据中学习特征。传统卷积神经网络(CNN)在处理规则网格数据(如图像)时非常有效,但由于点云是无序且不规则的,直接在其上应用卷积操作会导致形状信息丢失,并对点的排列顺序敏感。为了解决这一问题,论文提出了一种X-Conv操作。该方法通过学习一种来重新排列点云中的点并加权输入特征。然后,将典型的卷积操作应用于转换后的特征。这种方法将传统的 CNN 扩展到点云特征学习,并命名为PointCNN。

u012901740的博客 2300

Spring MVC表单标签库

我们在进行 Spring MVC 项目开发时,一般会使用 EL 表达式和 JSTL 标签来完成页面视图的开发。其实 Spring 也有自己的一套表单标签库,通过 Spring 表单标签,可以很容易地将模型数据中的命令对象绑定到 HTML 表单元素中。下面我们就通过一个示例来演示该标签库的用法。 首先和 JSTL 标签的使用方法相同,在使用 Spring 表单标签之前,必须在 JSP 页面开头处声明 taglib 指令,指令代码如下。 <%@ taglib prefix=“fm” uri=“http:/

洛卡JAVA架构师每日分享Java架构师知识 427

Python爬虫实战:抓取全球船舶AIS定位数据的全流程指南

AIS(Automatic Identification System)自动识别系统是目前全球航运中用于实时跟踪船只位置的主要技术。名称、MMSI编号、呼号实时经纬度船速、航向吃水、目的港状态(航行/停泊/锚泊)航线信息等🛰️海上运输监控:追踪航线,预估到港时间;🛳️船舶管理系统:为物流、港口运营提供决策依据;🌊研究分析:如海洋运输碳排放研究、船只拥堵热力图等;🧠人工智能训练数据集:用于轨迹预测、碰撞预警模型。

2201_76125261的博客 1362

Spring MVC----表单标签库

Spring MVC 表单标签库: 声明表单标签库   在使用 SpringMVC 的时候我们可以使用 Spring 封装的一系列表单标签,这些标签都可以访问到ModelMap中的内容。我们需要先在 JSP 中声明使用的标签,具体做法是在 JSP 文件的顶部加入以下指令: <%@ taglib prefix="form" uri="http://www.spring...

weixin_30466953的博客 179

API Streaming Failed 400 <400>InternalError.Algo.InvalidParameter input content must be a string解决方案

本文主要介绍了API Streaming Failed 400 <400> InternalError.Algo.InvalidParameter input content must be a string解决方案,希望能对使用vscode中cline的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 3万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Spring MVC表单标签库实例代码入门教程

原文:Spring MVC表单标签库实例代码入门教程 源代码下载地址:http://www.zuidaima.com/share/1825321313733632.htm 概述     在低版本的Spring中,你必须通过JSTL或将表单对象绑定到HTML表单页面中,对于习惯了Struts表单标签的开发者来说,Spring MVC的这一表现确实让人失望。不过这一情况已经一去不

云淡风轻、仅此一抹 4880

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

22 spring mvc---表单标签库| @ModelAttribute | 实现表单内容提交错误后返回表单时原先内容还在

Spring MVC 表单标签库 声明表单标签库 在使用 SpringMVC 的时候我们可以使用 Spring 封装的一系列表单标签,这些标签都可以访问到ModelMap中的内容。我们需要先在 JSP 中声明使用的标签,具体做法是在 JSP 文件的顶部加入以下指令: <%@ taglib prefix="form" uri="http://www.springframework....

shmily的博客 594

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Spring MVC 学习笔记 第八章 Spring MVC表单标签库

Spring MVC 学习笔记 第八章 Spring MVC表单标签库 一.表单标签库引入 Handler package com.fw.controller; import com.fw.entity.Student; import org.springframework.stereotype.Controller; import org.springframework.web.bind....

qq_41684416的博客 267

Spring MVC -- 数据绑定和表单标签库

数据绑定是将用户输入绑定到领域模型的一种特性。有了数据绑定,类型总是为String的HTTP请求参数,可用于填充不同类型的对象属性(或者说字段)。数据绑定使得form bean(在前面几篇博客案例中的表单类ProductForm实例)变得多余的。 为了高效的使用数据绑定,还需要Spring的表单标签库。本篇将重点介绍数据绑定和表单标签库,并提供范例,展示表单标签库中这些标签的用法。 一 数据绑定...

Graceful_scenery的博客 119

23. Spring MVC 表单标签库

Spring MVC 表单标签库 ​ ​ Spring MVC 的表单标签库的语法与 JSTL 标签库的语法非常类似,包含了一组可以在 JSP 页面中渲染 form 表单元素的标签。在 JSP 页面中使用 Spring MVC 表单标签库时,必须在 JSP 页面的开头处声明 taglib 指令,指令代码如下: <!-- 前缀prefix可以自定义,通常为form --> <%@ taglib prefix="form" uri="http://www.springframework.org

qq_41775769的博客 871

spring mvc数据绑定与表单标签库

Book类为 package org.shaoxiu; public class Book { private String id; private String name; public Book() { super(); } public Book(String id, String name) { super(); this.id ...

weixin_30355437的博客 129

Spring MVC 表单标签库

Spring MVC 表单标签库 表单标签库中包含了可以用在 JSP 页面中渲染 HTML 元素的标签。在 JSP 页面使用 Spring 表单标签库时,必须在 JSP 页面开头处声明 taglib 指令,指令代码如下: //prefix定义别名 <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%&...

Andre_151 269

软件开发实训(720科技)Spring MVC 第五章 数据绑定和表单标签库

内容关键字  :数据绑定预览表单标签库表单标签属性input 标签password 标签hidden标签text area 标签checkbox 标签radio button 标签checkboxes 标签radio buttons 标签select 标签option 标签options 标签errors 标签授课老师 720科技 张森鹏一:知识笔记数据绑定是将用户输入绑定到领域模型的一种特性。有...

深蓝的怪木头 294

Spring MVC表单标签库、Spring MVC国际化

Spring MVC表单标签库 1、Student 实体类 package com.southwind.entity2; import lombok.Data; @Data public class Student { private Integer id; private String name; private Integer age; private String gender; } 2、Handler package com.southwind.controller; import com

weixin_44152682的博客 358

Spring MVC的表单标签库详解

表单标签库中包含了可以用在 JSP 页面中渲染 HTML 元素的标签。在 JSP 页面使用 Spring 表单标签库时,必须在 JSP 页面开头处声明 taglib 指令,指令代码如下: <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 在表单标签库中有 form、input、passw...

惊鸿的技术博客 1855
上一篇: SpringMVC视图解析器
下一篇: Spring MVC 学习总结(四)——视图与综合示例
huapro.vip
博客等级 码龄15年 36粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值