• 3.数据校验和SpringEL


    1.数据验证

    数据验证不应该被限定在web层去处理,他应该在任何需要做数据验证的地方做验证;

    基于以上考虑,Spring设计了一个既方便又可以在所有层使用的Validator接口

    Spring提供了Validator接口来进行对对象的验证,该接口实现2个方法
    supports(Class)-判断该validator是否能校验提供的class的实例
    validate(Object, org.springframework.validation.Errors)- 校验给定的对象,如果有校验失败信息,将其放入Errors对象

    另外,Spring还完全支持JSR-303 Bean Validation
    Hibernate Validation是Bean Validation的参考实现,提供了JSR-303规范的所有内置实现
    SpringMVC还支持声明式验证@Controller输入。

    2.SpringEL简介

    Spring表达式语言(简称SpEL)是一个支持查询和操作运行时对象导航图功能的强大的表达式语言
    它的语法类似于传统EL,但提供额外的功能,最出色的就是函数调用和简单字符串的模板函数
    虽然SpEL引擎作为Spring 组合里的表达式解析的基础 ,但它不直接依赖于Spring,可独立使用

    SpEL支持以下功能:
    文字表达式 布尔和关系运算符 正则表达式
    类表达式 访问 properties, arrays, lists, maps
    方法调用 关系运算符 调用构造函数
    Bean引用 构造Array 内嵌lists
    内嵌maps 三元运算符 用户定义的函数
    集合投影 集合筛选 模板表达式

    接口ExpressionParser负责解析表达式字符串,例如:

    3.SpringEL使用

    SpEL是类似于OGNL和JSF EL的表达式语言,能够在运行时构建复杂表达式,存取对象属性、对象方法调用
    SpEL表达式可以与XML或基于注解的配置元数据使用定义
    定义表达式的语法形式:#{<表达式字符串>}

    基于XML的配置元数据

    基于注解的配置元数据:

    SpringEL使用实例:

    1.方法  2.构造 3.操作符 4.集合

    SpringEL方法:

    SpringEL允许开发者将一个对象的属性注入给另一个对象属性,也可以调用一个对象的方法,并将返回值注入给另一个对象的属性。

     

    SpringEL 构造:

    SpringEL允许开发者调用new关键字,实现构造方法调用,并实例化出对象

    SpringEL支持大多数的算数运算符、关系运算符、逻辑运算符、三元运算符等

    SpringEL集合

    SpringEL支持对List、Properties、Map等集合的操作,还支持集合选择、集合投影等

     

    SpringEL集合选择
    .?[]可以设置筛选条件
    .^[]获取第一个匹配项
    .$[]获取最后一个匹配项

    SpringEL集合投影

    .![]可以选择特定属性

     


    SpringEL 集合选择和集合投影结合使用

  • 相关阅读:
    JavaScript Location对象
    JavaScript History 对象
    JavaScript Navigator 对象
    C#实现windows系统重启、关机
    JavaScript ObjectURL | URL.createObjectURL和URL.revokeObjectURL
    依赖注入在 dotnet core 中实现与使用:4. 集成 Autofac
    Raid5的搭建、测试、取消
    Linux磁盘阵列(RAID)概述与实战
    Zookeeper超级用户使用案例:How to remove ACL protected ZK Node
    Kafka 权限管理实战(最全整理)
  • 原文地址:https://www.cnblogs.com/Firesun/p/9909379.html
Copyright © 2020-2023  润新知