程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> struts2.0-Struts2 國際化文件中 EL 表達式怎麼能執行 方法呢??

struts2.0-Struts2 國際化文件中 EL 表達式怎麼能執行 方法呢??

編輯:編程綜合問答
Struts2 國際化文件中 EL 表達式怎麼能執行 方法呢??

圖片說明
圖片說明

就是對於 ${getText(fieldName)} 產生了疑惑。
EL不是只能調用 屬性嗎?得是有getXxx(); ----- ${xxx} ,原來認識是應該這樣用啊。

我知道 Ognl可以強制 表達式 解析。可以調用對象棧 中對象的 方法。

但是EL如此用,有點理解不了。

最佳回答:


突然明白了,EL表達式用處 是在JSP頁面。。
這是在XML,properties文件。裡,${} 表示的不是EL表達式,而是Ognl
——————————————————————————————————————————————————————
struts2提供三種方式通過ognl表達式來取ValueStack中的數據:#、%{}、${}
  #和%{}需要放到struts2提供的標簽裡才生效。如:、
  一、最常用的方式是:#
  1.#能取request、session、application裡的attribute,但需要加前綴。如:、。如果是取request范圍的attribute,那麼不需要加request前綴,加上反而取不到數據,ognl默認從request裡取,如果沒有取到並不會到session或application裡取。如:
  2.#能取request裡的請求參數,但必須加parameters前綴,且取到的是一個數組,所以如果你要得到參數的第一項值,那麼還要加下標。如:。這相當於調用request.getParameterValues("name")[0];
  3.#加attr前綴能按request > session > application順序獲取attribute,這樣當在request中取不到時,會自動向session裡取,如果session裡也取不到,會再向application裡取。如果取到則返回,不再向上游歷。如:
  4.#能構造Map,如:
  5.#能用於過濾和投影(projecting)集合,如:books.{?#this.price   以上第4、5項功能,我沒有做過多介紹,因為目前為止這兩項功能我使用並不多。
  二、%{}的用途是在標簽的屬性為字符串類型時,計算OGNL表達式的值。這個功能目前還沒有深刻體會,故不介紹。
  三、${}有兩個主要的用途。
  1.用於在國際化資源文件中,引用OGNL表達式。
  2.在Struts 2配置文件中,引用OGNL表達式。如 :
  


ListPhotos.action?albumId=${albumId}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved