`
429537044
  • 浏览: 48885 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

springMVC3.2实现后台校验

 
阅读更多

      最近学习了一下springmvc中后台校验功能的实现,特别写了一个demo以备以后查看,主要使用注解方式来进行配置。

1、在jsp页面引入spring的标签

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

2、建立数据提交表单

<form:form method="post" action="reg.do" commandName="userBean">
			<table>
				<tr>
					<td>
						UserName:
						<font color="red"> <form:errors path="userName"></form:errors>
						</font>
					</td>

				</tr>
				<tr>
					<td>
						<form:input path="userName"/>
					</td>

				</tr>
				
				<tr>
					<td>
						Age:
						<font color="red"> <form:errors path="age"></form:errors>
						</font>
					</td>

				</tr>
				<tr>
					<td>
						<form:input path="age"/>
					</td>

				</tr>
				
				<tr>
					<td>
						password:
						<font color="red"> <form:errors path="password"></form:errors>
						</font>
					</td>

				</tr>
				<tr>
					<td>
						<form:password path="password"/>
					</td>

				</tr>
				
				<tr>
					<td>
						Confirm Password:
						<font color="red"> <form:errors path="confirmPassword"></form:errors>
						</font>
					</td>

				</tr>
				<tr>
					<td>
						<form:password path="confirmPassword"/>
					</td>

				</tr>
				<tr>
					<td>
						<input type="submit" value="submit">
					</td>

				</tr>

			</table>

		</form:form>

3、新建表单对象(javabean)

package springapp.model;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.NotEmpty;
import org.springframework.format.annotation.NumberFormat;
import org.springframework.format.annotation.NumberFormat.Style;

public class UserBean {

	@NotEmpty
	@Size(min = 1, max = 20)
	private String userName;

	@NumberFormat(style = Style.NUMBER)
	@NotNull(message = "Age must not be blank")
	@Min(value = 1, message = "Age must more then 1")
	@Max(value = 100, message = "Age must less then 100")
	private Integer age;

	@NotEmpty(message = "Password must not be blank.")
	@Size(min = 1, max = 10, message = "Password must between 1 to 10 Characters.")
	private String password;

	@NotEmpty
	private String confirmPassword;

	/** get and set  **/
}

  在对表单对象的错误信息提示的时候 我采用了几种方式。userName的错误信息配置在资源文件中(message.properties),如下所示:

NotEmpty.userBean.userName=\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A
#用户名不能为空

如果需要把错误提示信息配置在资源文件中,需要在spring-servlet.xml文件对 ReloadableResourceBundleMessageSource这个类进行注册如下:

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
		<property name="basename" value="/WEB-INF/message" />
	</bean>

 

 

 Age和password的提示信息就直接写在UserBean中,比如:

	@NumberFormat(style = Style.NUMBER)
	@NotNull(message = "Age must not be blank")
	@Min(value = 1, message = "Age must more then 1")
	@Max(value = 100, message = "Age must less then 100")
	private Integer age;

 

对password与Confirm password的校验就写在校验器中。如

package springapp.action;

import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;

import springapp.model.UserBean;

@Component("regValidation")
public class RegValidation {
	public boolean supports(Class<?> clazz) {
		return UserBean.class.isAssignableFrom(clazz);
	}

	public void validate(Object target, Errors errors) {
		UserBean userBean = (UserBean) target;
		ValidationUtils.rejectIfEmptyOrWhitespace(errors, "userName",
				"NotEmpty.userBean.userName",
				"User Name must not be Empty.");
		String userName = userBean.getUserName();
				if (!(userBean.getPassword()).equals(userBean.getConfirmPassword())) {
			errors.rejectValue("password",
					"matchingPassword.userBean.password",
					"Password and Confirm Password Not match.");
		}

	}
}

 

 

 

5、新建处理表单的Action

package springapp.action;

import javax.validation.Valid;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import springapp.model.UserBean;

@Controller
public class UserAction {

	@RequestMapping(value = "reg.do", method = RequestMethod.GET)
	public String init(Model model) {

		UserBean useBean = new UserBean();
		model.addAttribute("userBean", useBean);
		
		return "reg";
	}
	
	@RequestMapping(value="reg.do",method=RequestMethod.POST)
	public String reg(Model model,@Valid UserBean userBean,BindingResult result)
	{
		
		regValidation.validate(userBean, result);
		
		if(result.hasErrors())
		{
			return "reg";
		}
		model.addAttribute("userBean", userBean);
		return "regSuccess";
		
	}
	
	@Autowired
	private RegValidation regValidation;
}

 访问路径:http://localhost:80/SpringMVCValidation/reg.do

分享到:
评论

相关推荐

    springMVC3.2+Hibernate4的基本配置

    综上所述,这个"springMVC3.2+Hibernate4的基本配置"项目包含了一个完整的Web应用开发环境,包括SpringMVC的请求处理、Hibernate的数据持久化、C3P0连接池管理、事务控制、缓存优化以及自定义拦截器。这个配置模板...

    框架springmvc3.2+spring3.2+mybatis3.11+maven整合

    SSM(Spring MVC + Spring + MyBatis)是Java Web开发中常见的三层架构组合,而Spring MVC 3.2、Spring 3.2和MyBatis 3.11是这套框架组合的特定版本。本项目是将这些框架通过Maven进行整合,方便在MyEclipse环境中...

    springmvc 3.2(jar包)

    8. **AOP(面向切面编程)**: SpringMVC 3.2集成了Spring的AOP模块,允许开发者定义切面,实现如日志记录、事务管理等功能。 9. **国际化与本地化**: 支持基于不同语言和地区的消息资源文件,提供动态的多语言支持...

    SpringMVC3.2+JPA使用注解的方式环境搭建

    本文将深入探讨如何在SpringMVC3.2环境中使用注解的方式集成JPA,实现数据模型的持久化操作。 #### 一、实体类定义 首先,我们关注实体类的定义。在给定的代码片段中,展示了两个实体类`Pubuser`和`Pubaccinfo`。...

    springMVC3.2+Hibernate4+freemarker

    springMVC3.2+Hibernate4+freemarker 代码框架采用springMVC3.2.4+hibernate4.2.8+freemarker2.3.16 功能方面只是一个简单的注册登录,前台使用freemarker渲染,使用了freemarker自定义标签。

    基于springMVC3.2的REST源码,结合了jquery和json

    **SpringMVC 3.2 RESTful服务** SpringMVC是Spring框架的一部分,它是一个用于构建Web应用程序的轻量级MVC(Model-View-Controller)框架。在SpringMVC 3.2版本中,引入了对RESTful Web服务的强大支持,这使得开发...

    (SSM)springmvc3.2+spring3.2+mybatis3.11(带jar包)

    在“springmvc3.2+spring3.2+mybatis3.11”这个版本中: - Spring MVC 3.2带来了更多的注解支持,改进了异常处理机制,以及对RESTful风格的支持。 - Spring 3.2版本提供了更多性能优化,提升了对Java EE 6的兼容性,...

    maven3.05+springmvc3.2+spring3.2+hibernate3.6重写传智播客OA源代码(包含数据库)

    maven3.05+springmvc3.2+spring3.2+hibernate3.6重写传智播客OA源代码。菜单部分采用ztree.界面有一部分使用bootstrap3.11。听了汤阳光大神的视频收获很大,也学习springmvc,期间有一个想法用springmvc来改写汤大神...

    【免费】Springmvc3.2所需要的全部jar包

    3. **AOP(面向切面编程)**:Spring 3.2增强了AOP支持,允许开发者定义切面和通知,实现代码的解耦和模块化。这对于日志记录、事务管理等跨切面的关注点尤其有用。 4. **DAO和JDBC支持**:Spring提供了对各种数据...

    SpringMVC3.2 demo

    总的来说,"SpringMVC3.2 demo"项目展示了如何将SpringMVC与ZTree、JPA集成,构建一个具有基本登录功能的Web应用。通过学习这个项目,你可以了解到如何配置和使用这些技术,以及如何在实际开发中整合它们。同时,...

    springMVC3.2+Rest+jquery1.9+json实现的入门例子

    入门例子,可以运行,完整的包,具体代码说明可见:【http://wenku.baidu.com/view/0ab26ef4f705cc175527096b?fr=prin】,一样的。代码虽然不大,但可运行,有一定的启发性。

    springmvc3.2_practice

    通过以上内容的学习和实践,开发者可以熟练地运用SpringMVC 3.2构建高效的Java Web应用,实现业务逻辑与视图的解耦,提高代码的可读性和可维护性。在实际项目中,可以根据需求灵活配置和扩展,打造符合企业级标准的...

    框架springmvc3.2+spring3.2+mybatis3.11整合附带jar包

    在SSM整合中,MyBatis作为数据库操作的桥梁,通过Spring的管理实现DAO层的事务控制。 4. **整合过程**: - 首先,引入所需jar包,包括Spring MVC、Spring、MyBatis以及它们的依赖。 - 创建Spring的配置文件(如`...

    jack-json包和配置,springmvc3.2及以下json格式支持

    在这种情况下,开发者需要引入第三方库来实现JSON的序列化和反序列化功能,例如Jackson(jack-json)。 Jackson是Java中非常流行的一个JSON处理库,由FasterXML公司维护。它提供了一套高效且灵活的API,可以方便地...

    springmvc3.2

    1. **注解驱动的开发**:Spring MVC 3.2强化了注解的使用,使得开发者可以通过在方法、类或参数上添加注解来实现控制器的功能。例如,`@RequestMapping`用于映射HTTP请求,`@PathVariable`用于获取URL模板变量,`@...

    基于springmvc的视频后台管理系统

    综合来看,这个基于SpringMVC的视频后台管理系统通过Java实现强大的后端功能,利用HTML、CSS和JavaScript构建用户友好的前端界面,实现了视频课程的全面管理和运营。这样的系统可以广泛应用于在线教育平台、视频分享...

    springMVC3.2

    Spring MVC 3.2是该框架的一个特定版本,它在3.x系列中引入了多项改进和增强,以提高开发效率和应用程序性能。在与Hibernate 4.0和MySQL 5.1.27结合使用时,可以构建出功能强大、性能优化的Web应用程序。 在Spring ...

    springmvc+hibernate后台管理系统

    EasyUI基于jQuery,支持数据绑定,能够与后台的SpringMVC和Hibernate无缝对接,实现前后端数据的高效交互。 系统内含的数据库监控系统是一个亮点,它允许开发者实时查看和分析数据库的运行状态,包括SQL执行情况、...

    SpringMVC3.2.0+MyBatis3.1.1+Spring3.2.0 整合

    服务层(service层)是业务逻辑处理的核心,包括接口和实现类。测试类的编写可以验证整合是否成功。 Spring MVC的集成需要创建对应的包和控制器类(demo.controller),配置spring-mvc.xml以及在web.xml中设置...

Global site tag (gtag.js) - Google Analytics