一.#符號的用途一般有三種。
「#」主要有三種用途:
1. 訪問ognl上下文和action上下文,#相當於actioncontext.getcontext();下表有幾個actioncontext中有用的屬性:
parameters
包含當前http請求引數的map
#parameters.id[0]作用相當於request.getparameter ("id")
request
包含當前httpservletrequest的屬性(attribute)的map
#request.username相當於request.getattribute("username")
session
包含當前httpsession的屬性(attribute)的map
#session.username相當於session.getattribute("username")
包含當前應用的servletcontext的屬性(attribute)的map
#attr.username相當於按順序在以上三個範圍(scope)內讀取username屬性,直到找到為止
2)用於過濾和投影(projecting)集合,如示例中的persons.。
3)用來構造map,例如示例中的#。
二.%符號
%符號的用途是在標誌的屬性為字串型別時,轉換為計算ognl表示式的值。如下面的**所示:
構造map
the value of key 「foo1″ is
不使用%:
使用%:
三.$符號
$符號主要有兩個方面的用途。
在國際化資源檔案中,引用ognl表示式,例如國際化資源檔案中的**:reg.agerange=國際化資源資訊:年齡必須在$同$之間。
在struts 2框架的配置檔案中引用ognl表示式,例如下面的**片斷所示:10
100
baction-test校驗:數字必須為$為$之間!
2、動態的結果集(dynamic result)
$ 注:${}:作用是用於在配置檔案中從value stack(值棧)中取值。
例如:$ 表示從value stack(值棧)中取raction的(成員屬性)的值。注意這個成員屬性必需存在
注:此處的${}不是el表示式。
get/set方法。
action類中指定了r的值。這樣就動態確定了result的值
public class useraction extends actionsupport
public void setr(string r)
public int gettype()
public void settype(int type)
@override
public string execute() throws exception }
四、@符號
package com. wjt276.struts2.ognl;
public class s }
訪問靜態方法:
訪問靜態屬性:
訪問math類的靜態方法:
// 兩個@符號
小結:
$ # % @
a) $ 用於i18n和struts配置檔案
b) # 取得actioncontext的值
c) % 將原本的文字屬性解析為ognl,對於本來就是ognl的屬性不起作用
d) @ 用於靜態方法或屬性的呼叫
Struts 2中 和 符號的相應用途
和 符號在ognl表示式中經常出現,而這三種符號也是開發者不容易掌握和理解的部分。在這裡筆者簡單介紹它們的相應用途。1 符號的用途一般有三種。1 訪問非根物件屬性,例如示例中的 session.msg表示式,由於struts 2中值棧被視為根物件,所以訪問其他非根物件時,需要加 字首。實際上,相當於...
Struts2中的特殊符號
size large 從actioncontext中取值,前面加上 百分號的作用就是將大括號中的值當成ognl表示式 用於在struts配置檔案中 和 符號在ognl表示式中經常出現,而這三種符號也是開發者不容易掌握和理解的部分。在這裡筆者簡單介紹它們的相應用途。1 符號的用途一般有三種。1 訪問非...
struts2中的特殊符號的作用
符號的用途一般有三種。主要有三種用途 1.訪問ognl上下文和action上下文,相當於actioncontext.getcontext 下表有幾個actioncontext中有用的屬性 parameters 包含當前http請求引數的map parameters.id 0 作用相當於request...