struts2學習筆記 OGNL表示式1

2021-09-07 05:40:50 字數 1513 閱讀 6164

struts2標籤庫主要使用的是ognl語言,類似於el表示式,但是強大得多,它是一種操作物件屬性的表示式語言,ognl有自己的優點:

能夠訪問物件的方法,如list.size();

能夠訪問靜態屬性和靜態方法,只需要在類名前,方法前加上@,如@math@pi;

支援賦值操作.如賦值#value=5;

能夠訪問ognl上下文和actioncontext;

能操作集合類物件.

1:匯入標籤庫    <%@ taglib prefix="s" uri="/struts-tags" %>

注意:要使用struts2標籤,那麼要通過struts2過濾器來啟用.如果過濾器的配置為為*.action時,是不能直接通過url訪問jsp頁面的,需要通過action跳轉.如果配置為為/*時,是可以直接訪問jsp頁面的.struts2不推薦直接訪問jsp頁面,為了安全,推薦使用action來控制.

下面是乙個簡單登入案例的loginaction的**(實體類user有兩個屬性name,pwd,**省略,login.jsp**也省略):

package

com.wang.action;

import

com.opensymphony.xwork2.action;

import

com.opensymphony.xwork2.actioncontext;

import

com.opensymphony.xwork2.actionsupport;

import

com.wang.entity.user;

public

class loginaction extends

actionsupport

else

}public

string exit()

public

user getuser()

public

void

setuser(user user)

}

當登入成功時會跳轉到succ.jsp頁面,假設我們要在該頁面獲取到登入的使用者名稱,並在瀏覽器顯示出來,succ.jsp**應該這樣寫(只保留body部分核心**):

<

body

>

<

h1>歡迎使用者$---------------<

a href

="user/exit.action"

>退出

a>

h1>

<

h1>歡迎使用者<

s:property

value

="user.name"

/>---------------

h1>

<

h1>歡迎使用者<

s:property

value

="#session.user"

/>

h1>

body

>

struts2學習筆記(七) OGNL

ognl的功能在很大一部分和el表示式衝突,我的策略是先使用el表示式,如果不支援就使用ongl表示式,ongl主要對集合的支援更多一些 語法為 上面的 生成了乙個html select物件,可選的內容為 name1,name2,name3,預設值為 name2。對於 array和list,可使用下...

Struts2 學習筆記(七) OGNL

對於domain model只有傳入user.時系統才會構造乙個user物件,也可以手動構造,如果使用系統自動構造時,domain model 裡面需要有引數為空的建構函式。1 訪問value stack 中的普通屬性和方法 屬性 s property value user.age s proper...

Struts2中OGNL的 , , 使用

ognl是通常要結合struts 2的標誌一起使用,如等。大家經常遇到的問題是 和 這三個符號的使用。主要有三種用途 訪問ognl上下文和action上下文,相當於actioncontext.getcontext 下表有幾個actioncontext中有用的屬性 名稱作用例子 parameters ...