Spring EL prend en charge la plupart des opérateurs mathématiques, logiques ou relationnels standard. Par exemple,
-
Opérateurs relationnels - égaux (==, eq), non égaux (! =, Ne), inférieurs à
(<, lt), inférieur ou égal à (⇐, le), supérieur à (>, gt) et supérieur à ou égal à (> =, ge).
-
Opérateurs logiques - et, ou, et non (!).
-
Opérateurs mathématiques - addition (), soustraction (-),
Multiplication (** ), division (/), module (%) et puissance exponentielle (^).
printemps EL en annotation
Cet exemple illustre l’utilisation des opérateurs dans SpEL.
package com.mkyong.core;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component("customerBean")
public class Customer {
//Relational operators
@Value("#{1 == 1}")//true
private boolean testEqual;
@Value("#{1 != 1}")//false
private boolean testNotEqual;
@Value("#{1 < 1}")//false
private boolean testLessThan;
@Value("#{1 <= 1}")//true
private boolean testLessThanOrEqual;
@Value("#{1 > 1}")//false
private boolean testGreaterThan;
@Value("#{1 >= 1}")//true
private boolean testGreaterThanOrEqual;
//Logical operators , numberBean.no == 999
@Value("#{numberBean.no == 999 and numberBean.no < 900}")//false
private boolean testAnd;
@Value("#{numberBean.no == 999 or numberBean.no < 900}")//true
private boolean testOr;
@Value("#{!(numberBean.no == 999)}")//false
private boolean testNot;
//Mathematical operators
@Value("#{1 + 1}")//2.0
private double testAdd;
@Value("#{'1' + '@' + '1'}")//1@1
private String testAddString;
@Value("#{1 - 1}")//0.0
private double testSubtraction;
@Value("#{1 ** 1}")//1.0
private double testMultiplication;
@Value("#{10/2}")//5.0
private double testDivision;
@Value("#{10 % 10}")//0.0
private double testModulus ;
@Value("#{2 ^ 2}")//4.0
private double testExponentialPower;
@Override
public String toString() {
return "Customer[testEqual=" + testEqual + ", testNotEqual="
+ testNotEqual + ", testLessThan=" + testLessThan
+ ", testLessThanOrEqual=" + testLessThanOrEqual
+ ", testGreaterThan=" + testGreaterThan
+ ", testGreaterThanOrEqual=" + testGreaterThanOrEqual
+ ", testAnd=" + testAnd + ", testOr=" + testOr + ", testNot="
+ testNot + ", testAdd=" + testAdd + ", testAddString="
+ testAddString + ", testSubtraction=" + testSubtraction
+ ", testMultiplication=" + testMultiplication
+ ", testDivision=" + testDivision + ", testModulus="
+ testModulus + ", testExponentialPower="
+ testExponentialPower + "]";
}
}
package com.mkyong.core;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component("numberBean")
public class Number {
@Value("999")
private int no;
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
}
Exécuter
Customer obj = (Customer) context.getBean("customerBean");
System.out.println(obj);
Sortie
Customer[ testEqual=true,
testNotEqual=false,
testLessThan=false,
testLessThanOrEqual=true,
testGreaterThan=false,
testGreaterThanOrEqual=true,
testAnd=false,
testOr=true,
testNot=false,
testAdd=2.0,
testAddString=1@1,
testSubtraction=0.0,
testMultiplication=1.0,
testDivision=5.0,
testModulus=0.0,
testExponentialPower=4.0]....
=== Spring EL en XML
Voir la version équivalente dans le fichier XML de définition de bean. En XML, un symbole comme
"** moins que ** " n'est toujours pas supporté, vous devriez plutôt utiliser le texte
équivalents indiqués ci-dessus, par exemple, ('** <** ' = '** lt ** ') et ('** <= ** ' =
'** le ** ').
<beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation = "http://www .springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd ">
<bean id = "customerBean" class = "com.mkyong.core.Customer"> <nom de la propriété = "testEqual" valeur = "# {1 == 1}"/> <nom de la propriété = "testNotEqual" valeur = "# {1! = 1} "/> <nom de la propriété =" testLessThan "valeur =" # {1 lt 1} ""/> <nom de la propriété = "testLessThanOrEqual" valeur = "# {1 le 1}"/> <nom de la propriété = "testGreaterThan" value = "# {1> 1}"/> <nom de la propriété = "testGreaterThanOrEqual" value = "# {1> = 1}"/> <nom de la propriété = "testAnd" valeur = "# {numberBean. no == 999 et numberBean.no lt 900} "/> <nom de la propriété =" testOr "valeur =" # {numberBean.no == 999 ou numberBean.no lt 900} "/> <nom de la propriété =" testNot "valeur = "# {! (numberBean.no == 999)}"/> <nom de la propriété = "testAdd" value = "# {1 1}"/> <nom de la propriété = "testAddString" value = "# {'1' '@' '1'} "/> <property name =" testSubtraction "value =" # {1 - 1} "/> <property name =" testMultiplication "value =" # {1 ** 1} "/> <propriété name = "testDivision" value = "# {10/2}"/> <propriété name = "testModulus" value = "# {10% 10}"/> <propriété name = "testExponentialPower" value = "# {2 ^ 2}"/> </bean> <bean id = "numberBean" class = " com.mkyong.core.Number "> <property name =" no "value =" 999 "/> </bean>
</beans>
=== Télécharger le code source Télécharge le - link://wp-content/uploads/2011/06/Spring3-EL-Operator-Example.zip[Spring3-EL-Operator-Example.zip](7 KB) === Référence . http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html#d0e11931[Official Ressorts EL opérateurs opérateurs] lien://tag/spring-el/[printemps el]lien://tag/spring3/[spring3]