Spring EL поддерживает большинство стандартных математических, логических или реляционных операторов. Например,
, Реляционные операторы - равно (==, eq), не равно (! =, Ne), меньше чем
(<, lt), меньше или равно (⇐, le), больше (>, gt) и больше или равно (> =, ge).
, Логические операторы - и, или, и не (!).
, Математические операторы - сложение (), вычитание (-),
Умножение (** ), деление (/), модуль (%) и экспоненциальная мощность (^).
Spring EL в аннотации
Этот пример демонстрирует использование операторов в 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; } }
Запустить его
Customer obj = (Customer) context.getBean("customerBean"); System.out.println(obj);
Выход
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 в XML Смотрите эквивалентную версию в XML-файле определения компонента. В XML символ как «** меньше ** » всегда не поддерживается, вместо этого вы должны использовать текстовый эквиваленты, показанные выше, например, ('** <** ' = '** lt ** ') и ('** <= ** ' = '** Ле ** ').
<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"> <имя свойства = "testEqual" value = "# {1 == 1}"/> <имя свойства = "testNotEqual" value = "# {1! = 1} "/> <имя свойства =" testLessThan "value =" # {1 lt 1} "/> <имя свойства =" testLessThanOrEqual "value =" # {1 le 1} "/> <имя свойства = "testGreaterThan" value = "# {1> 1}"/> <имя свойства = "testGreaterThanOrEqual" value = "# {1> = 1}"/> <имя свойства = "testAnd" value = "# {numberBean. нет == 999 и numberBean.no lt 900} "/> <имя свойства =" testOr "value =" # {numberBean.no == 999 или numberBean.no lt 900} "/> <имя свойства =" testNot "значение = "# {! (numberBean.no == 999)}"/> <имя свойства = "testAdd" value = "# {1 1}"/> <имя свойства = "testAddString" value = "# {'1' '@' '1'} "/> <property name =" testSubtraction "value =" # {1 - 1} "/> <property name =" testMultiplication "value =" # {1 ** 1} "/> <property name = "testDivision" value = "# {10/2}"/> <свойство name = "testModulus" value = "# {10% 10}"/> <property name = "testExponentialPower" value = "# {2 ^ 2}"/> </bean> <bean id = "numberBean" class = " com.mkyong.core.Number "> <property name =" no "value =" 999 "/> </bean>
</Бобы>
=== Скачать исходный код Загрузить - ссылка://wp-content/uploads/2011/06/Spring3-EL-Operator-Example.zip[Spring3-EL-Operator-Example.zip](7 КБ) === Ссылка , http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html#d0e11931[Official Spring EL операторы ссылки] ссылка://tag/spring-el/[spring el]ссылка://tag/spring3/[spring3]