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

普通的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属性中。

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

时间: 2024-10-08 18:08:10

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

Java单体应用 - 常用框架 - 07.Spring MVC - 表单标签库

原文地址:http://www.work100.net/training/monolithic-frameworks-spring-mvc-form-tags.html更多教程:光束云 - 免费课程 表单标签库 序号 文内章节 视频 1 声明表单标签 - 2 表单标签 - 3 文本框 - 4 密码框 - 5 文本域 - 6 复选框 - 7 复选框(多选) - 8 单选按钮 - 9 单选按钮(多选) - 10 下拉列表 - 11 下拉列表(多选) - 12 隐藏域 - 请参照如上章节导航进行阅读

MVC中Form表单的提交

Form表单是数据提交的一种,在MVC中Form表单提交到服务器中地址,接受Form表单的方式有一下几种: 1.采用实体Model类型提交,Form表单中的Input标签name要和Model对应的属性保持一致,接受Form表单的服务器端就可以直接以实体的方式存储,使用方式如下: Form表单: <form action="/Employee/SaveEmployee" method="post"> <table> <tr> &l

MVC中处理表单提交的方式(Ajax+Jquery)

MVC中处理表单有很多种方法,这里说到第一种方式:Ajax+Jquery 先看下表单: <form class="row form-body form-horizontal m-t"> <div class="col-md-6"> <div class="form-group"> <label class="col-sm-3 control-label">订单编号:</la

数据绑定和表单标签库

1.数据绑定 在spring MVC中数据绑定有这样基层定义: 绑定请求参数输入值到领域模型 模型数据到视图的绑定 模型数据到表单元素的绑定. 2.表单标签库 表单标签库中包含了可以用在JSP页面中渲染HTML元素的标签. 在JSP页面使用时需要引入如下代码: <%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %> 1.表单标签 2.input标签 3.passw

第七节 认识SpringMVC中的表单标签

所谓成熟,就是:你要习惯,任何人的忽冷忽热:也要看淡,任何人的渐行渐远: --胖先生 SpringMVC的表单标签 回顾: JSTL标签 --C标签 FMT标签 自学:JSP如何自定义标签[开源社区当中有别人写好的标签] 表单标签:使用规则 模拟开发环境: 1.更新操作 A.通过主键进行查询 B.JSP显示 C.提交表单 @RequestMapping(value="/update/{user_id}",method=RequestMethod.GET) public ModelAnd

asp.net.mvc 中form表单提交控制器的2种方法和控制器接收页面提交数据的4种方法

MVC中表单form是怎样提交? 控制器Controller是怎样接收的? 1..cshtml 页面form提交 (1)普通方式的的提交 (2)特殊方式提交 2.控制器处理表单数据的四种方法 方法1:使用传统的Request请求数据 方法2:Action参数名与表单元素name值一一对应 方法3:从MVC封装的FormCollection容器中读取 方法4:使用实体作为Action参数传入,前提是提交的表单元素名称与实体属性名称一一对应 控制器源码 using MvcStudy.Models;u

mvc中form表单提交的几种形式

第一种方式:submit 按钮 提交 <form action="MyDemand" method="post"> <span>关键字:</span> <input name="keywords" type="text" value="@keywords" /> <input type="submit" value="搜索&

SpringMVC学习系列(11) 之 表单标签

本篇我们来学习Spring MVC表单标签的使用,借助于Spring MVC提供的表单标签可以让我们在视图上展示WebModel中的数据更加轻松. 一.首先我们先做一个简单了例子来对Spring MVC表单表单标签的使用有一个大致的印象,然后再结合例子对各个标签介绍一下如何使用. 1.首先,在com.demo.web.models包中添加一个模型TagsModel内容如下: package com.demo.web.models; import java.util.List; import ja

SpringMVC学习系列 之 表单标签

http://www.cnblogs.com/liukemng/p/3754211.html 本篇我们来学习Spring MVC表单标签的使用,借助于Spring MVC提供的表单标签可以让我们在视图上展示WebModel中的数据更加轻松. 一.首先我们先做一个简单了例子来对Spring MVC表单表单标签的使用有一个大致的印象,然后再结合例子对各个标签介绍一下如何使用. 1.首先,在com.demo.web.models包中添加一个模型TagsModel内容如下: package com.de