服务器端验证

1.导入JSR303验证类库Jar包
2.在MVC的配置文件中添加<mvc:annotation-driven/>的配置
3.在MVC的配置文件中添加验证器的配置
4.在接收表单数据的类中添加验证规则注解
5.在控制器方法的表单对象参数上添加@valid注解
6.在控制器方法中对BindResult对象进行判断

struts2:validation.xml

struts2                            SpringMVC

实体类                              LoginForm类

action                              Controller

struts.xml                        MVC-servlet.xml

先导入支持服务器端验证的组件    JSR-303验证类库  里边有四个类库

在LoginForm类中配置:

package cn.bdqn.mvc.form;

import org.hibernate.validator.constraints.NotEmpty;

public class LoginForm {
	private String loginName;
	private String password;

	@NotEmpty(message="请输入登录名")
	public String getLoginName() {
		return loginName;
	}
	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}
	@NotEmpty(message="请输入密码")
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}

在MVC-servlet.xml中配置

<!-- 基于注解的MVC配置 -->
<mvc:annotation-driven/>
<!-- 验证器 -->
	<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
		<!-- 使用Hibernate验证框架进行验证 -->
        <property name="providerClass"  value="org.hibernate.validator.HibernateValidator"/>
    </bean>

在LoginController类中配置:

//建议不用实体类接受请求,建议单独定义一个表单类
	@RequestMapping(value="login",method=RequestMethod.POST)
	public String doLogin2(
			@Valid@ModelAttribute("form")LoginForm loginForm,//这样转发回表单页面的时候会自动回填数据
			BindingResult result
			){
		//是否发生服务器端验证错误,hasErrors()是管所有的错误
		if(result.hasErrors()){
			return "login";
		}

		if(!loginForm.getLoginName().equals("admin")){
			result.rejectValue("loginName","form", "用户名输入错误");  //reject是驳回的意思
		}else if (!loginForm.getPassword().equals("123456")) {
			result.rejectValue("password","form", "密码输入错误");
		}
		//如果添加了错误信息,则转发回登陆表单页面
		if(result.hasErrors()){
			return "login";
		}

		System.out.println("登录名:"+loginForm.getLoginName());
		System.out.println("密码:"+loginForm.getPassword());
		return "hello";
	}
时间: 2024-10-10 09:13:09

服务器端验证的相关文章

jsf服务器端验证用户输入

服务器端验证用户输入数据步骤 1 html页面上插入要输入数据控件 ? 1 2 3 4 <h:inputText size="10" value="#{commodityBean.foradd.name}"                         id="input1">                         <f:validator validatorId="input1Validator"

android客户端向服务器端验证登陆方法的实现1

遇到的问题:一个条件查询与多个条件查询,所用到的方式不一样 参考文档: http://www.oschina.net/question/1160609_133366    mybatis多条件查询的一个错误 解决方案如下: 利用序列号的方式解决多个参数的查询问题.对象与数据库关系的映射层. 层次结构如下: 首先定义model层里面的Userlist类,这是和我们后台mysql里面的表是一一对应的,然后定义UserlistMapper类,这个类主要是用来封装一些个方法,比如说增删改查等.其实现通过

android客户端向服务器端验证登陆方法的实现2

一.在上一篇文章中,我只是提到了其中一种方法来实现登陆 大家可以参见: http://www.apkbus.com/android-45004-1-1.html      android获取web服务器端session并验证登陆 http://blog.csdn.net/cainiao123hack/article/details/8255848   服务器端向Android客户端传值--登录实现 http://zhidao.baidu.com/link?url=8g9EWhyUkUgUr1dh

表单的验证:客户端验证和服务器端验证

表单的验证:客户端验证和服务器端验证 表单的确认 客户端确认: 减少服务器负载 缩短用户等待时间 兼容性难 服务器端确认: 统一确认 兼容性强 服务器负载重 客户端验证例子 首先建立一个表单,在其提交时用JavaScript方法进行验证,若该方法返回true,则进行表单的提交,若返回false,则表单不提交. <!-- 表单提交时执行JavaScript方法validate(),如果该方法返回false,那么表单是不会提交的 --> <form onsubmit="return

(十六)客户端验证与struts2中的服务器端验证

一.客户端验证: 即用javaScript来验证. 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ taglib prefix="s" uri="/struts-tags" %> 4 <!DOCTYPE html PUBLIC &qu

FineUI(开源版)v6.0中FState服务器端验证的实现原理

前言 1. FineUI(开源版)是完整开源,最早发起于 2008-04,下载全部源代码:http://fineui.codeplex.com/ 2. 你可以通过捐赠作者来支持FineUI(开源版)的发展:http://fineui.com/donate/ FineUI的FState与ViewState 早在2013-01 我曾写过一篇文章,对FState有详细介绍:http://www.cnblogs.com/sanshi/archive/2013/01/08/2850459.html 现在来

服务器端验证--验证框架验证

优点:无须写代码,简化工作量,修改验证无须修改代码,利于后期维护. 在那个需要验证的action中写xml文件  文件名有讲究啊   那个action的类名-validation.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" &quo

Spring MVC学习笔记——服务器端验证

UserController.java package org.common.controller; import java.util.HashMap; import java.util.Map; import org.common.model.User; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validat

MVC学习系列10---验证系列之服务器端验证

这篇文章,我将会说到,使用数据注解API来进行服务端验证.ASP.NET MVC 框架在执行的时候,验证所有传递到控制器的数据,如果验证失败就把错误消息,填充到ModelState对象中,并且把这个对象传递给控制器,然后控制器中的方法,根据Modelstate的状态来判断,是否验证失败还是验证通过. 在这里,我将会使用两种方法来验证数据的合法性,一个是手动添加错误消息到ModelState对象中,另外一个方法是使用数据注解[Data Annotation] API,来做. 先来看看使用手动验证的