SpringEL三元运算
语法
Spring Expression Language (SpEL) 的三元运算符类似于常规编程语言中的条件(三元)运算符。在 SpEL 中,三元运算符的语法格式如下:
expr1 ? expr2 : expr3
这个运算符的工作原理是:如果 expr1
为真(即非 null、非空集合、非 0、非 false),则返回 expr2
;否则返回 expr3
。
以下是一个使用 SpEL 三元运算符的示例:
假设我们有一个 Person
类,其中包含 name
和 age
两个属性。
public class Person {
private String name;
private int age;
// getters and setters...
}
现在我们想创建一个方法,根据给定 Person
的年龄是否大于 18,返回不同的消息
public String getMessage(Person person) {
String message;
if (person.getAge() > 18) {
message = "成年人";
} else {
message = "未成年人";
}
return message;
}
我们可以用 SpEL 的三元运算符重写这个方法:
public String getMessageSpEL(Person person) {
return person.getAge() > 18 ? "成年人" : "未成年人";
}
在这个例子中,如果 person 的年龄大于 18,那么返回字符串 “成年人”;否则,返回字符串 “未成年人”。这正是 SpEL 的三元运算符所做的事情
Spring EL支持三元运算符,执行"if then else"条件检查。 例如
condition ? true : false
Spring EL以注解形式
Spring EL三元运算符可使用@Value注解。在这个例子中,如果"itemBean.qtyOnHand"小于100,则设置"customerBean.warning"为true,否则将其设置为false
package com.yiibai.core;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component("customerBean")
public class Customer {
@Value("#{itemBean.qtyOnHand < 100 ? true : false}")
private boolean warning;
public boolean isWarning() {
return warning;
}
public void setWarning(boolean warning) {
this.warning = warning;
}
@Override
public String toString() {
return "Customer [warning=" + warning + "]";
}
}
package com.yiibai.core;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component("itemBean")
public class Item {
@Value("99")
private int qtyOnHand;
public int getQtyOnHand() {
return qtyOnHand;
}
public void setQtyOnHand(int qtyOnHand) {
this.qtyOnHand = qtyOnHand;
}
}
输出
Customer [warning=true]
Spring EL以XML形式
<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.yiibai.core.Customer">
<property name="warning"
value="#{itemBean.qtyOnHand < 100 ? true : false}" />
</bean>
<bean id="itemBean" class="com.yiibai.core.Item">
<property name="qtyOnHand" value="99" />
</bean>
</beans>
输出结果文章来源:https://www.toymoban.com/news/detail-732827.html
Customer [warning=true]
在XML中,需要小于运算符使用"<“替换”<"文章来源地址https://www.toymoban.com/news/detail-732827.html
到了这里,关于5.SpringEL三元运算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!