Spring MVC表单标签库

我们在进行 Spring MVC 项目开发时,一般会使用 EL 表达式和 JSTL 标签来完成页面视图的开发。其实 Spring 也有自己的一套表单标签库,通过 Spring 表单标签,可以很容易地将模型数据中的命令对象绑定到 HTML 表单元素中。下面我们就通过一个示例来演示该标签库的用法。

首先和 JSTL 标签的使用方法相同,在使用 Spring 表单标签之前,必须在 JSP 页面开头处声明 taglib 指令,指令代码如下。
<%@ taglib prefix="fm" uri="http://www.springframework.org/tags/form"%>

常用的 Spring 表单标签如下表所示。
image.png
以上标签基本都拥有以下属性。
path:属性路径,表示表单对象属性,如 userName、userCode 等。
cssClass:表单组件对应的 CSS 样式类名。
cssErrorClass:当提交表单后报错(服务端错误),采用的 CSS 样式类。
cssStyle:表单组件对应的 CSS 样式。
htmlEscape:绑定的表单属性值是否要对 HTML 特殊字符进行转换,默认为 true。
示例
下面以 fm:form 表单标签为例,模仿添加用户信息。

  1. 创建实体类
    创建实体类 user,代码如下。
    package net.biancheng.po;
    public class User {
    private String name;
    private Integer age;
    private Double height;

    /** 省略setter和getter方法*/
    }

  2. 创建页面
    创建 addUser.jsp,代码如下。
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib prefix="fm" uri="http://www.springframework.org/tags/form"%>

添加用户 用户名:
年龄:
身高:
标签的 modelAttribute 属性用于指定绑定的模型属性。默认从模型中尝试取名为“command”的表单对象,若不存在此表单对象,将会报错。所以一般情况下会指定 modelAttribute 属性。

此外,表单组件标签页拥有 HTML 标签的各种属性,如 id、onclick 等,都可以根据需要灵活使用。

创建显示页面 showUser.jsp,代码如下。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>

用户信息 您创建的用户信息如下:
用户名:${user.name }
年龄:${user.age }
身高:${user.height } 3. 创建控制器类 创建 UserController,代码如下。 package net.biancheng.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import net.biancheng.po.User; @Controller public class UserController { @RequestMapping(value = "/addUser", method = RequestMethod.GET) public String add(@ModelAttribute("user") User user) { return "addUser"; } @RequestMapping(value = "/showuser", method = RequestMethod.POST) public String showuser(User user, HttpSession session, HttpServletRequest request) { return "showUser"; } } 4. 测试运行 访问地址: http://localhost:8080/springmvcDemo2/addUser ,运行结果如下图所示。 ![image.png](https://upload-images.jianshu.io/upload_images/28037261-4ca34f3e449c687a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![image.png](https://upload-images.jianshu.io/upload_images/28037261-8035cf7e6fe224ee.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
posted @ 2022-06-11 20:07  梦塔Java  阅读(71)  评论(0)    收藏  举报