Struts 2支持以下幾種表達式語言:
- OGNL(Object-Graph Navigation Language),可以方便地操作對象屬性的開源表達式語言;
- JSTL(JSP Standard Tag Library),JSP 2.0集成的標準的表達式語言;
- Groovy,基於Java平臺的動態語言,它具有時下比較流行的動態語言(如Python、Ruby和Smarttalk 等)的一些起特性;
- Velocity,嚴格來說不是表達式語言,它是一種基於Java的模板匹配引擎,具說其性能要比JSP好。
Struts 2默認的表達式語言是OGNL,原因是它相對其它表達式語言具有下面幾大優勢:
- 支持對象方法調用,如xxx.doSomeSpecial() ;
- 支持類靜態的方法調用和值訪問,表達式的格式爲@[類全名(包括包路徑)]@[方法名 | 值名],例如:@java.lang.String@format('foo %s', 'bar') 或@tutorial.MyConstant@APP_NAME ;
- 支持賦值操作和表達式串聯,如price=100, discount=0.8, calculatePrice() ,這個表達式會返回80;
- 訪問OGNL上下文(OGNL context)和ActionContext;
- 操作集合對象。
引自:http://www.blogjava.net/max/archive/2007/04/28/114417.html