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**也省略):
packagecom.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 ...