`

SpringMVC_3.x_入门指南_5

阅读更多

SpringMVC 3.x

博文目录

  1. 服务器端验证
  2. pom.xml添加依赖
  3. User实体类配置约束
  4. 配置UserController中的约束
  5. 页面配置
  6. 给页面传用来存取表单信息的对象

 SpringMVC与Hibernate结合,SpringMVC的服务端验证

表单提交有些是必须填的,除了在页面使用JS进行验证外(这里不说哟!),还需要在服务端进行验证!
样式如下:


 

 
我们在上一篇博文的基础上进行改进!

在pom.xml中添加依赖:

 

<!-- 表单验证 -->
<dependency>
	<groupId>org.hibernate</groupId>
	<artifactId>hibernate-validator</artifactId>
	<version>5.0.1.Final</version>
</dependency>

 

 

 在User实体类对应的属性上配置一些注解:

 

package com.cn.pojo;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.validator.constraints.NotEmpty;

@Entity
@Table(name="t_user")
public class User {

	private Integer id;
	@NotEmpty(message="用户名不能为空")
	private String username;
	@NotEmpty(message="密码不能为空")
	private String password;
	
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	
}

 

 

 @NotEmpty(message="**")
表示此属性不能为空,message是定义的提示信息。

在UserController中的add方法上做如下改变:

 

@RequestMapping(value="/add",method=RequestMethod.POST)
public String add(@Valid User user,BindingResult bindingResult){
	if(bindingResult.hasErrors()){
		return "user/add";
	}
	userService.save(user);
	return "redirect:/user";
}

 

 

 给参数user加上注解@Valid,表示此表单提交的内容需要进行验证,用什么验证呢?用我们在User实体类中配置的方式进行验证,如果出错了呢,就将错误信息存到后面的一个参数中(BindingResult bindingResult);
BindingResult对象有一个hasErrors方法,用来判断此对象中是否存在错误!!
新改动的方法的意思就是:如果出错了,我就不保存,直接返回到添加用户页面(user/add)!!
否则,保存并跳转到/user页面;

错误信息要怎么接收呢?有两个条件:
1,使用SpringMVC的标签库进行表单设计
2,在到达表单页的时候,给表单一个用于接收表单信息的空的对象(new User()),并存放到commandName属性中
3,表单中的Path属性值,需要与User对象中的属性名一致

add.jsp:

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>添加用户</title>
    <style type="text/css">
    	.error{
    		color:red;
    	}
    </style>
  </head>
  <body>
  	<h1>使用SpringMVC的标签库进行表单提交,并进行服务端验证</h1>
  	<form:form action="/user/add" commandName="user" method="post">
  		用户名:<form:input path="username"/> <form:errors path="username" cssClass="error"/> <br/>
    	密 &nbsp;码:<form:password path="password"/> <form:errors path="password" cssClass="error" /> <br/>
    	<form:button name="button">submit</form:button>
  	</form:form>
  
  
    <h1>添加用户</h1>
    <form action="/user/add" method="post">
    	用户名:<input type="text" name="username"/> <br/>
    	密 &nbsp;码:<input type="text" name="password"/> <br/>
    	<input type="submit" value="提交"/>
    </form>
  </body>
</html>

 

 

 第二行是引入SpringMVC的form标签库
commandName对应传进来的空的对象(new User()),如果对象非空,则表单中会有值,下面input的值对应此对象的某一个属性
form:errors表单元素用来接收错误信息,其path指示接收哪个属性的错误信息
form:button默认是提交表单,貌似只能提交表单吧!
此form标签,可以添加类似普通表单的class属性,用来定义其style.(例如上面的.error{color:red;})

对应的跳转表单页的方法addForm需要如下的设置:

 

@RequestMapping(value="/add",method=RequestMethod.GET)
public String addForm(Model model){
	model.addAttribute("user", new User());
	return "user/add";
}

 

 

 必须给页面进行传入User对象,否则会报错!

写道
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'command' available as request attribute

 

完成所有的配置之后,启动服务器,访问:localhost/user/add即可看到我们的表单了;
点击submit试试;
输入一个表单值,提交试试;
服务端的验证就是这么简单!!

 

  • 大小: 12.7 KB
  • 大小: 12.5 KB
分享到:
评论

相关推荐

    springmvc_4\springmvc_4.part1.rar

    springmvc_4\springmvc_4.part1.rar

    springmvc_learning.rar

    SpringMVC和MyBatis是Java开发中两个非常重要的框架,它们在构建高效、可维护的Web应用程序中扮演着核心角色。SpringMVC是Spring框架的一部分,主要用于处理HTTP请求和响应,而MyBatis则是一个优秀的持久层框架,...

    SpringMvc_Maven.zip_java项目_maven_maven springmvc_springmvc maven

    5. **定义视图解析器**:在 Spring MVC 配置中,需要配置 ViewResolver 来解析视图,例如使用 InternalResourceViewResolver 来处理 JSP 视图。 6. **创建模型和视图**:在控制器方法中,你可以创建模型对象,并...

    tmp_springmvc_maven.rar

    《SpringMVC与Spring整合及Maven项目结构详解》 在Web开发领域,SpringMVC作为Spring框架的一部分,被广泛用于构建高效的、模块化的后端控制器。本项目以"tmp_springmvc_maven.rar"为载体,展示了如何利用SpringMVC...

    SpringMVC_Upload.rar_shipvu7_springmvc_springmvc upload

    总的来说,"SpringMVC_Upload.rar_shipvu7_springmvc_springmvc upload"示例涉及了Spring MVC框架下的多文件上传、返回值处理以及与数据库交互的关键知识点。通过学习和实践这些内容,你可以构建出健壮的Web应用程序...

    SpringMVC_JDBC.zip_springmvc

    5. **ModelAndView**:这是SpringMVC中一个特殊类,用于将模型数据和视图名组合在一起,然后传递给DispatcherServlet。 6. **HandlerMapping**:处理器映射器负责找到适合处理特定请求的Controller方法。 7. **...

    springmvc_demo.zip

    SpringMVC是Spring框架的一部分,专门用于处理Web应用程序的请求和响应。在Java世界中,SpringMVC作为轻量级的MVC(Model-View-Controller)架构模式,被广泛应用于构建高性能、可维护的企业级应用。在这个...

    Tomcat 部署 war 源文件 springmvc_war.zip

    【标题】:Tomcat部署WAR源文件:SpringMVC应用 【描述】:在Java Web开发中,Tomcat是一款广泛使用的轻量级应用服务器,它能够运行Servlet和JSP应用程序。这里我们关注的是如何在Tomcat上部署一个名为"springmvc_...

    SpringMVC_01.rar

    这个名为"SpringMVC_01.rar"的压缩包文件显然是一个针对初学者的Spring MVC学习项目,它包含了实现Spring MVC基本功能所需的代码示例,非常适合入门学习。 在Spring MVC中,主要涉及以下几个核心概念: 1. **...

    springmvc_4\springmvc_4.part2.rar

    springmvc

    Spirng_SpringMVC_Mybatis.zip

    Spring、SpringMVC和Mybatis是Java开发中广泛使用的三大框架,它们的整合(SSM)为开发者提供了高效且灵活的Web应用开发解决方案。在这个案例中,我们将深入探讨这三个框架如何协同工作,以及如何实现基本的用户管理...

    springmvc_demo.7z

    【标题】"springmvc_demo.7z"是一个包含SpringMVC项目源码的压缩包,意味着它提供了使用SpringMVC框架构建的Web应用程序的完整代码结构。SpringMVC是Spring框架的一部分,主要用于处理Web请求,提供模型-视图-控制器...

    SpringMVC_4.rar.rar

    SpringMVC是Spring框架的一个模块,专为构建Web应用程序而设计。它提供了模型-视图-控制器(MVC)架构模式的实现,帮助开发者将业务逻辑、数据展示和用户界面分离,提高代码的可维护性和可测试性。下面将详细讨论...

    springmvc_day01_01_start.zip

    《SpringMVC 入门教程:从零开始学习SpringMVC》 在IT行业中,SpringMVC作为一款强大的Web应用程序框架,被广泛应用于Java后端开发。本教程以"springmvc_day01_01_start.zip"为起点,旨在帮助初学者快速掌握...

    SpringMVC_beetl.rar_beetl_sheep8on_springmvc

    3. 注册视图解析器:在SpringMVC配置中,添加一个BeetlViewResolver的bean,用于将处理后的结果转换为Beetl模板并渲染。 4. 使用模板:在控制器方法中,返回模板名而不是具体的视图,如"index",SpringMVC会根据...

    2021全新SpringMVC教程

    1.1_SpringMVC_课程介绍.mp4 1.2_SpringMVC_导学.mp4 02_SpringMVC_回顾MVC.mp4 04_SpringMVC_SpringMVC的特点.mp4 06_SpringMVC_HelloWorld:创建maven工程.mp4 10_SpringMVC_HelloWorld:配置springMVC配置文件....

    1. 尚硅谷_佟刚_SpringMVC_概述.zip

    SpringMVC是Spring框架的一个模块,专为构建Web应用程序而设计。它提供了模型-视图-控制器(MVC)架构,使开发者能够将业务逻辑、数据处理和用户界面分离,从而实现更清晰、更可维护的代码结构。在这个尚硅谷的教程...

    springMVC_netty.rar

    3. **SpringMVC与Netty集成**:在SpringMVC应用中集成Netty,通常是为了实现高效的后台服务,例如,通过TCP通信进行大数据传输或实时通信。集成的关键在于创建一个独立于SpringMVC的Netty服务器,作为后台服务,处理...

    springmvc_2020.rar

    1. 登录验证,(同时ajax的异步验证) 2. 老师和学生登录后有不同的界面 3. 学生可以给老师留言,并查看自己留言的状态 4. 老师可以对学生进行增删改查,对留言进行处理 5.资源中提供数据库

Global site tag (gtag.js) - Google Analytics