高のKi Struts2.0ビデオチュートリアルノート(7)

7_OGNLの言語

 

7.1 OGNL 何ですか?

OGNL 名はオブジェクトグラフナビゲーション言語(グラフィカルナビゲーション言語オブジェクト)、維持することに加えて、ELの他に、言語の利点を、TA 次のように他の利点:

・アクセスオブジェクトに共通する方法

・静的プロパティと静的メソッドは、クラスにアクセスすることができます

オブジェクトのコレクションを操作する・強力な能力

割り当てと表現シリーズのサポート

*アクセスOGNLのコンテキスト(OGNL ValueStackのオブジェクト)とするactionContext

7.2ValueStack

1.OGNLのクエリ値のルートにあるオブジェクト( Struts2ののルートオブジェクトはValueStackのクエリ)。

2. のでアクションオブジェクトが配置されているValueStackはしたがって、あるアクションを介してすべてのプロパティが利用可能であるOGNLを直接読み取ります。

3. に加えてValueStackの値が、他のするactionContextのコンテンツが増加する必要がある#をマークします。プラス、言われOGNLを見つけるために、オブジェクトをrootに、その文脈で相関値を見つけることではありません。

4.attr オブジェクト。:からのご注文のPageContext リクエストセッションアプリケーションプロパティのアクションを探すために。

 

7.3 テストOGNL 小さなプロジェクトは、コンテキスト属性を取得しオブジェクトのアクセス属性スコープを読み取ります

    このプロジェクトは、テストするために主にデバッグ別の借入でビュー異なる値を。

7.3.1 最初に以下のパラメータに割り当てられました

7.3.2 ページ内の対応する値を取得

7.3.3 での表示ページのデバッグマップ

1 )を追加する必要はありません参照属性値を:

2 )を追加する必要があります。#参照プロパティ値を

3)传参数的时候

A,分别传一个、两个参数,但存在同名参数的时候,利用数组下标来引用如果不加下标的话,就打印整个数组)同名参数的方法:

B,页面显示效果:

7.4 OGNL的运算符

7.4.1 运算符 [] .

小结:

1.点运算符操作方便,较常用

2.[ ] 运算符操作不方便,但是功能强大,可以传入变量值,动态取值(例如上图,将r的值赋给a就是一个应用)

7.4.2 普通运算符

    OGNL支持所有java运算符。截图显示如下:

7.4.3 赋值

7.5 OGNL操作集合

7.5.1 List/Set

List定义语法:{e1,e2,e3}

7.5.2 Map

7.5.3 集合中查找元素:innot in操作符

7.5.4 过滤/投影

投影:由过滤集合中元素产生一个子集合。

?---符合选择逻辑的所有元素。

^---符合选择逻辑的第一个元素

$---符合选择逻辑的最后一个元素

#this---表示集合正在遍历的元素

代码演示:

7.6 OGNL其他技术

7.6.1 调用对象普通方法

    直接调用即可:<s:property value="#request.t5.test1()"/>

新建方法如下:

7.6.2 调用类的静态方法和静态属性

格式:

    @class@method(args) // 调用静态方法    

    @class@field          // 调用静态属性

注意:

1.其中class必须给出完整的类名(包括包名),如果省略class,那么默认使用的类是java.util.Method,

如:@@min    (5,3) @@max(5,3) @@PI

2.需要修改Struts.xml配置,增加如下语句:<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>

显示结果:

3.调用静态方法返回值

转载于:https://www.cnblogs.com/FreshStudent/p/3636809.html

おすすめ

転載: blog.csdn.net/weixin_34043301/article/details/94529577