Spring FORM 标签库(二)

简介: Spring MVC提供了一个JSP标签库(Spring Form),使将表单元素绑定到Model 数据变得更加容易。Spring Framework 提供了一些标签,用于显示 错误,设置主题和输出国际化消息。

4.创建一个Java类文件Registration.java,其中包含注册应用程序的业务逻辑。在这里,此文件包含8个私有变量,它们分别具有getter和setter方法,用于存储注册细节。

Registration.java

public class Registration {
    private String username;
    private String password;
    private String fname;
    private String lname;
    private String gender;
    private String country;
    private String addr;
    private String cb;
    public String getAddr() {
        return addr;
    }
    public void setAddr(String addr) {
        this.addr = addr;
    }
    public String getCb() {
        return cb;
    }
    public void setCb(String cb) {
        this.cb = cb;
    }
    public String getCountry() {
        return country;
    }
    public void setCountry(String country) {
        this.country = country;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    public Registration() {
    }
    public String getFname() {
        return fname;
    }
    public void setFname(String fname) {
        this.fname = fname;
    }
    public String getLname() {
        return lname;
    }
    public void setLname(String lname) {
        this.lname = lname;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
}


5.创建一个RegistrationFormController.java文件,该文件扩展了SimpleFormController以控制用户请求并返回相应的ModelAndView对象。

RegistrationFormController.java

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
public class RegistrationFormController extends SimpleFormController {
@Override
    protected ModelAndView onSubmit(Object command) throws Exception {
        Registration reg=(Registration)command;
        String uname=reg.getUsername();
        String fname=reg.getFname();
        String lname=reg.getLname();
        String gender=reg.getGender();
        String country=reg.getCountry();
        String cb=reg.getCb();
        String addr=reg.getAddr();
         ModelAndView mv = new ModelAndView(getSuccessView());
          mv.addObject("uname",uname);
          mv.addObject("fname",fname);
          mv.addObject("lname",lname);
          mv.addObject("gender",gender);
          mv.addObject("country",country);
          mv.addObject("cb",cb);
          mv.addObject("addr",addr);
        return mv;
    }
}


6,创建一个registrationValidator.java文件来验证诸如用户名和密码之类的表单字段不能为空.DispatcherServlet负责赋予属性以将Validator添加到用户请求并执行验证。

registrationValidator.java

import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
public class registrationValidator implements Validator
{
    public boolean supports(Class cl) {
        return Registration.class.isAssignableFrom(cl);
    }
    public void validate(Object ob, Errors errors) {
       Registration reg=(Registration)ob;
       if (reg.getUsername() == null || reg.getUsername().length() == 0) {
            errors.rejectValue("username", "error.empty.username");
        }
       else if (reg.getPassword() == null || reg.getPassword().length() == 0) {
            errors.rejectValue("password", "error.empty.password");
        }
    }
}


7,创建或修改 messages.properties 文件,其中包含各自键值的消息,在此文件中,我们为两个键值编写消息,分别为空用户名和空密码。

messages.properties
error.empty.username=Please Enter User name
error.empty.password=Please Enter Password


8,构建并运行应用程序

输出

访问页面:http://localhost:8080/Registration/index.html

清空密码时,使用spring错误标签显示相应的错误消息。

只有在正确验证用户名和密码后,我们才能提交表单。

显示输出,其中包含所有提交注册的值

原文使用的较早的Spring版本(<3),更新后的源码放在 https://github.com/yujiaao/sp... 供参考。

jspformspring

相关文章
|
9月前
|
Java Spring 容器
Spring5源码(42)-@Transactional注解的声明式事物事物标签提取
Spring5源码(42)-@Transactional注解的声明式事物事物标签提取
49 0
|
6月前
|
存储 Java API
|
6月前
|
存储 SQL Java
|
8月前
|
Web App开发 前端开发 Java
基于Spring3 MVC实现基于HTML form表单文件上传
基于Spring3 MVC实现基于HTML form表单文件上传
50 7
基于Spring3 MVC实现基于HTML form表单文件上传
|
8月前
|
Java Spring 容器
spring重点标签有哪些
spring重点标签有哪些
|
8月前
|
缓存 Java Maven
深入解析Google Guava库与Spring Retry重试框架
深入解析Google Guava库与Spring Retry重试框架
Spring Boot 一个接口同时支持 form 表单、form-data、json 优雅写法
网上很多代码都是千篇一律的 cvs,相信我只要你认真看完我写的这篇,你就可以完全掌握这个知识点,这篇文章不适合直接 cvs,一定要先理解。
|
9月前
|
XML Java 数据格式
Spring5源码(41)-tx:annotation-driven 标签解析过程
Spring5源码(41)-tx:annotation-driven 标签解析过程
479 0
|
9月前
|
Java 数据库 Spring
Spring5源码(40)-基于tx标签和基于@Transactional注解的声明式事物介绍
Spring5源码(40)-基于tx标签和基于@Transactional注解的声明式事物介绍
77 0
|
9月前
|
存储 前端开发 Java
Spring Boot中Spring MVC的表单标签库与数据绑定讲解与实战(附源码 超详细必看)
Spring Boot中Spring MVC的表单标签库与数据绑定讲解与实战(附源码 超详细必看)
111 0