亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Spring中使用Expression接口對表達式進行求值

發布時間:2021-03-22 17:44:38 來源:億速云 閱讀:205 作者:Leah 欄目:編程語言

怎么在Spring中使用Expression接口對表達式進行求值?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

一 Bean

package org.crazyit.app.domain;
import java.util.Date;
public class Person
{
   private Integer id;
   private String name;
   private Date birth;
   // 無參數的構造器
   public Person()
   {
   }
   // 初始化全部成員變量的構造器
   public Person(Integer id , String name , Date birth)
   {
      this.id = id;
      this.name = name;
      this.birth = birth;
   }
   // id的setter和getter方法
   public void setId(Integer id)
   {
      this.id = id;
   }
   public Integer getId()
   {
      return this.id;
   }
   // name的setter和getter方法
   public void setName(String name)
   {
      this.name = name;
   }
   public String getName()
   {
      return this.name;
   }
   // birth的setter和getter方法
   public void setBirth(Date birth)
   {
      this.birth = birth;
   }
   public Date getBirth()
   {
      return this.birth;
   }
}

二 測試類

package lee;
import org.springframework.expression.*;
import org.springframework.expression.spel.standard.*;
import org.springframework.expression.spel.support.*;
import java.util.*;
import org.crazyit.app.domain.*;
public class SpELTest
{
  public static void main(String[] args)
  {
    // 創建一個ExpressionParser對象,用于解析表達式
    ExpressionParser parser = new SpelExpressionParser();
    // 最簡單的字符串表達式
    Expression exp = parser.parseExpression("'HelloWorld'");
    System.out.println("'HelloWorld'的結果: " + exp.getValue());
    // 調用方法的表達式
    exp = parser.parseExpression("'HelloWorld'.concat('!')");
    System.out.println("'HelloWorld'.concat('!')的結果: "
      + exp.getValue());
    // 調用對象的getter方法
    exp = parser.parseExpression("'HelloWorld'.bytes");
    System.out.println("'HelloWorld'.bytes的結果: "
      + exp.getValue());
    // 訪問對象的屬性(d相當于HelloWorld.getBytes().length)
    exp = parser.parseExpression("'HelloWorld'.bytes.length");
    System.out.println("'HelloWorld'.bytes.length的結果:"
      + exp.getValue());
    // 使用構造器來創建對象
    exp = parser.parseExpression("new String('helloworld')"
      + ".toUpperCase()");
    System.out.println("new String('helloworld')"
      + ".toUpperCase()的結果是: "
      + exp.getValue(String.class));
    Person person = new Person(1 , "孫悟空", new Date());
    exp = parser.parseExpression("name");
    // 以指定對象作為root來計算表達式的值
    // 相當于調用person.name表達式的值
    System.out.println("以persn為root,name表達式的值是: "
      + exp.getValue(person , String.class));
    exp = parser.parseExpression("name=='孫悟空'");
    StandardEvaluationContext ctx = new StandardEvaluationContext();
    // 將person設為Context的root對象
    ctx.setRootObject(person);
    // 以指定Context來計算表達式的值
    System.out.println(exp.getValue(ctx , Boolean.class));
    List<Boolean> list = new ArrayList<Boolean>();
    list.add(true);
    EvaluationContext ctx2 = new StandardEvaluationContext();
    // 將list設置成EvaluationContext的一個變量
    ctx2.setVariable("list" , list);
    // 修改list變量的第一個元素的值
    parser.parseExpression("#list[0]").setValue(ctx2 , "false");
    // list集合的第一個元素被改變
    System.out.println("list集合的第一個元素為:"
      + parser.parseExpression("#list[0]").getValue(ctx2));
  }
}

三 測試結果

'HelloWorld'的結果: HelloWorld
'HelloWorld'.concat('!')的結果: HelloWorld!
'HelloWorld'.bytes的結果: [B@14899482
'HelloWorld'.bytes.length的結果:10
new String('helloworld').toUpperCase()的結果是: HELLOWORLD
以persn為root,name表達式的值是: 孫悟空
true
list集合的第一個元素為:false

看完上述內容,你們掌握怎么在Spring中使用Expression接口對表達式進行求值的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

友谊县| 巫溪县| 镇沅| 淮南市| 上犹县| 保山市| 台中市| 乌鲁木齐县| 台中县| 桃园县| 长垣县| 巍山| 会同县| 繁峙县| 仁布县| 吉林省| 西青区| 龙南县| 潼南县| 黎城县| 荥阳市| 锦屏县| 和政县| 延寿县| 荣昌县| 通江县| 永川市| 萨嘎县| 紫金县| 丘北县| 北碚区| 德昌县| 綦江县| 内黄县| 富阳市| 吉林省| 金平| 十堰市| 台州市| 基隆市| 仙桃市|