spel表达式的用法_substring用法

spel表达式的用法_substring用法SPEL运算符运算符类型运算符算术运算+、-、*、/、%、^关系运算<、>、==、<=、>=、lt、gt、eq、le、ge逻辑运算and、or、not、|条件运算?:(ternary)、?:(Elvis)正则表达式matchesdemo数值运算<!–+运算符:两个数字相加–><propertyname=”adjustedAmount”value=”#{counter.total+42}

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

SPEL运算符

运算符类型 运算符
算术运算 +、-、*、/、%、^
关系运算 <、>、==、<=、>=、lt、gt、eq、le、ge
逻辑运算 and、or、not、|
条件运算 ?:(ternary)、?:(Elvis)
正则表达式 matches

demo数值运算

<!-- +运算符:两个数字相加 -->
<property name="adjustedAmount" value="#{counter.total + 42}"/>
<!-- +运算符:用于连接字符串 -->
<property name="fullName" value="#{performer.firstName + ' ' + performer.lastName}"/>
<!-- -运算符:两个数字相减 -->
<property name="adjustedAmount" value="#{counter.total - 20}"/>
<!-- *运算符:乘法运算 -->
<property name="circumference" value="#{2 * T(java.lang.Math).PI * circle.radius}"/>
<!-- /运算符:除法运算 -->
<property name="average" value="#{counter.total / counter.count}"/>
<!-- %运算符:求余运算 -->
<property name="remainder" value="#{counter.total % counter.count}"/>
<!-- ^运算符:乘方运算 -->
<property name="area" value="#{T(java.lang.Math).PI * circle.radius ^ 2}"/>

注意:运算符可以执行字符串连接

比较值

比较两个数值是否相等,可以使用“==”运算符:

<!-- 假设equal属性为布尔属性 -->
<property name="equal" value="#{counter.total == 100}"/>

类似的,其他关系运算符可以用于比较不同的值,
注意:由于小于等于和大于等于这两个符号在XML中有特殊意义,所以在Spring的XML配置文件中使用这两个符号时,会报错。当在XML中使用SPEL时,最好对这些运算符使用SPEL的文本替代方法

运算符 符号 文本类型
等于 == eq
小于 < lt
小于等于 <= le
大于 > gt
大于等于 = ge

逻辑表达式

<!-- and 运算符 -->
<property name="largeCircle" value="#{shape.kind == 'circle' and shape.perimeter gt 10000}"/>
<!-- ! 运算符 -->
<property name="outOfStock" value="#{!product.availiable}"/>
<!-- not 运算符 -->
<property name="outOfStock" value="#{not product.availiable}"/>

运算符 操作
and 逻辑AND运算操作,只有运算符两边都是true,表达式才能是true
or 逻辑OR运算操作,只要运算符的任意一边是true,表达式就会是true
not或! 逻辑NOT运算操作,对运算结果求反

条件表达式

<!-- ?:三元运算符 -->
<property name="song" value="#{kenny.song != null ? kenny.song : 'Greensleeves'}"/>

如果kenny.song值不为空,则赋值kenny.song ,否则赋值’Greensleeves’。这里’Greensleeves’的引用重复两次,可简化表达式如下:

<!-- ?:三元运算符 -->
<property name="song" value="#{kenny.song != null ? 'Greensleeves'}"/>

当以这种方式使用时,“?:”通常被称为elvis运算符,而第一种方式则称为ternary运算符。

SPEL正则表达式

SpEL通过matches运算符来支持表达式中的模式匹配。

<!-- 判断一个字符串是否是有效的邮件地址 -->
<property name="validEmail" value="#{admin.email matches '[a-zA-Z0-9.-%+-]+@[a-zA-Z0-9.-]+\\.com'}"/>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194872.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Laravel 队列发送邮件

    Laravel 队列发送邮件

    2021年10月25日
    36
  • 智慧小区智能物业管理系统综合解决方案_智能小区管理系统

    智慧小区智能物业管理系统综合解决方案_智能小区管理系统因为传统的办公方式效率低,工作强度大。人们需耗费大量的时间和精力去手工处理那些繁杂、重复的工作,而手工处理的延时和差错,正是现代化管理中应该去除的弊端。又由于物业管理企业的启动基金不足,多种经营服务不善等,导致招不到专业水平高的工作人员,再加上管理手段落后,所以就很难提高物业管理企业的效益。小区管理在手工操作时代,工作非常繁琐,需要大量的人力、物力和财力,极大的浪费了小区物业的资源。而这些项目在过去手工操作时代,需要手工记录这些事情,不但麻烦琐碎,还经常出现错误,给广大业主带来很不便,正是适应这种社…

    2022年10月18日
    2
  • Python中随机数的生成[通俗易懂]

    Python中随机数的生成[通俗易懂]在Python中可以用于随机数生成的有两种主要途径,一是random模块,另一个是numpy库中random函数。OUTLINErandom模块numpy中的random函数总结random模块random模块中将近有7个函数都是可以用来生成随机数的:①random.random()功能:随机生成一个[0,1)的浮点数用法:importrando…

    2022年10月5日
    2
  • pycharm linux激活码-激活码分享

    (pycharm linux激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~AFH5K5BM31-eyJsaWNlb…

    2022年3月30日
    148
  • Pytorch 安装

    Pytorch 安装Pytorch安装已有Cuda9.0,anaconda3,用conda命令安装pytorchcondainstallpytorchtorchvisioncuda90-cpytorch验证是否安装成功python然后依次输入from__future__importprint_functionimporttorchx=torch.rand(5,3)p…

    2022年6月24日
    31
  • java实现十进制转十六进制_十进制转十六进制java代码

    java实现十进制转十六进制_十进制转十六进制java代码基础练习十六进制转十进制时间限制:1.0s内存限制:512.0MB问题描述  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535太奇葩了,拿到这道题受上道题的影响,自己写了进制转化函数,结果,25分。。。。imp…

    2025年5月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号