声明式数据验证

1.

2. web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name>    

   <servlet>
      <!--  配置前端过滤器 -->
      <servlet-name>springmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <init-param>
           <param-name>contextConfigLocation</param-name>
           <param-value>classpath:springmvc-servlet.xml</param-value>
       </init-param>
       <!-- 表示容器再启动的时候立即记载Servlet -->
       <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
      <servlet-name>springmvc</servlet-name>
      <url-pattern>/</url-pattern>
  </servlet-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

3.springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.2.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">

    <!-- 采用组件扫描的形式 -->
    <context:component-scan base-package="com.inspur.controller"></context:component-scan>
    <mvc:annotation-driven validator="validator"></mvc:annotation-driven>
    <!-- 配置validator -->
    <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
        <property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property>

        <property name="validationMessageSource" ref="messageSource"></property>
    </bean>
    <!-- 配置的messageSource -->
    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource" >
        <property name="basenames" value="classpath:message"></property>
        <!-- 资源文件的编码格式 -->
        <property name="fileEncodings" value="utf-8"></property>
        <!-- 对资源文件内容缓存时间,单位秒 -->
        <property name="cacheSeconds" value="120"></property>
    </bean>

    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="ViewClass" value="org.springframework.web.servlet.view.JstlView"></property>
        <!-- <property name="prefix" value="/WEB-INF/jsp/"></property>
        <property name="suffix" value=".jsp"></property> -->
    </bean>
</beans>

4.ValidateController.java

package com.inspur.controller;

import javax.validation.Valid;

import org.springframework.stereotype.Controller;
import org.springframework.validation.Errors;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;

import com.inspur.pojo.User;
@Controller
public class ValidateController {
    @RequestMapping("/validate")
    public String annotationValidate(@Valid @ModelAttribute("user")User user,Errors errors){
        //是否存在错误
        if(errors.hasErrors()){
            return "/jsp/error.jsp";
        }
        return "/jsp/success.jsp";
    }

}

5.User.java

package com.inspur.pojo;

import javax.validation.constraints.NotNull;

public class User {
    @NotNull(message="{username.not.empty}")
    private String username;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

}

6.message.properties

7.error.jsp

8.success.jap

原文地址:https://www.cnblogs.com/sunxiaoyan/p/9203118.html

时间: 2024-10-28 15:10:01

声明式数据验证的相关文章

C#并行编程-PLINQ:声明式数据并行

原文:C#并行编程-PLINQ:声明式数据并行 背景 通过LINQ可以方便的查询并处理不同的数据源,使用Parallel LINQ (PLINQ)来充分获得并行化所带来的优势. PLINQ不仅实现了完整的LINQ操作符,而且还添加了一些用于执行并行的操作符,与对应的LINQ相比,通过PLINQ可以获得明显的加速,但是具体的加速效果还要取决于具体的场景,不过在并行化的情况下一段会加速. 如果一个查询涉及到大量的计算和内存密集型操作,而且顺序并不重要,那么加速会非常明显,然而,如果顺序很重要,那么加

spring(7)--注解式控制器的数据验证、类型转换及格式化

7.1.简介 在编写可视化界面项目时,我们通常需要对数据进行类型转换.验证及格式化. 一.在Spring3之前,我们使用如下架构进行类型转换.验证及格式化: 流程: ①:类型转换:首先调用PropertyEditor的setAsText(String),内部根据需要调用setValue(Object)方法进行设置转换后的值: ②:数据验证:需要显示调用Spring的Validator接口实现进行数据验证: ③:格式化显示:需要调用PropertyEditor的getText进行格式化显示. 使用

06数据验证

u  声明式数据验证 u  内置的验证约束和注解 u  错误消息 u  功能处理方法上多个验证参数的处理 u  异常处理的支持 1      声明式数据验证 Spring3开始支持JSR-303验证框架,JSR-303支持XML风格的和注解风格的验证,接下来我们首先看一下如何使用Spring的验证功能.  1.添加jar包   此处使用Hibernate-validator实现(版本:hibernate-validator-4.3.0.Final-dist.zip),将如下jar包添加到clas

[原创]java WEB学习笔记70:Struts2 学习之路-- 输入验证,声明式验证,声明是验证原理

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

Struts2的输入验证(二)-声明式验证证框架的原理

一.Struts2 声明式验证原理解析 1.Struts2 默认的拦截器栈中提供了一个 validation 拦截器,validation 拦截器负责加载和执行已注册的验证程序. 其运行时序图如下: 2.每个具体的验证规则都会对应具体的一个验证器,有一个配置文件把验证规则名称和验证器关联起来了,而实际上执行验证的就是那个验证器.  该文件位于 com.opensymphony.xwork2.validator.validators 下的 default.xml. 如下图所示: 3.配置文件与验证

Struts运行流程分析与声明式验证

strust2运行流程分析 1.发送一个HttpServletRequest给StrutsPrepareAndExecuteFilter 2.StrutsPrepareAndExecuteFilter询问ActionMapper:该请求是否是一个Struts2请求(即是否返回一个非空的ActionMapping对象) 3.若ActionMapper认为该请求是一个Struts2请求,则StrutsPrepareAndExecuteFilter把请求的处理交给ActionProxy 4.Actio

Spring Boot 揭秘与实战(二) 数据存储篇 - 声明式事务管理

文章目录 1. 声明式事务 2. Spring Boot默认集成事务 3. 实战演练4. 源代码 3.1. 实体对象 3.2. DAO 相关 3.3. Service 相关 3.4. 测试,测试 本文讲解 Spring Boot 如何使用声明式事务管理. 声明式事务 Spring 支持声明式事务,使用 @Transactional 注解在方法上表明这个方法需要事务支持.此时,Spring 拦截器会在这个方法调用时,开启一个新的事务,当方法运行结束且无异常的情况下,提交这个事务. Spring 提

C#中手工进行声明式验证,从此远离if验证

今天在一个ASP.NET MVC Controller Action中写代码时,需要对ViewModel的字段进行验证.但这个Action处理的是手工编写的ajax请求(不是表单提交),无法使用ASP.NET MVC Validation功能. MVC Action示例代码如下: public async Task<ActionResult> Save(int? postId, PostModel post) { //验证post的属性,比如Titile不能为空 } 按照以前的写法,就要写if

strut2 的数据验证

数据验证 用户的输入验证,必须做,且工作量巨大. 1.验证的方式 客户端验证:javascript 服务端验证:逻辑验证(我们的代码) 注意:如果客户端和服务端二选一的话,服务器端的不能省. 实际开发中:客户端+服务端 2.Struts2的服务端验证 2.1.编程式验证 前提:                                    动作类必须继承ActionSupport                             在代码中编写验证规则. a.针对动作类中的所有动作方