2013-10-22 58 views
0

我需要使用Struts2 <s:if>標籤來評估來自不同JSP頁面的函數返回值。使用IF TAG評估Struts2函數

功能是一個類內部實現的,我想在不同的JSP頁面

用法示例:

<s:if test="%isLogin()==true">dosomething</s:if> 
+0

你可以把你的方法放在基類動作類中,所有你的動作類將會擴展。但是最好把這種邏輯放入攔截器中。 –

回答

2
<s:if test="%{isLogin()}">dosomething</s:if> 

或者更好的是:

<s:if test="%{loggedIn}">doSomething</s:if> 

命名事項。

+0

謝謝,我對這個標籤的工作方式有疑問,假設我有一個只包含if/else標籤的jsp頁面,如何調用正確的動作。在我的例子中:如果頁面中沒有表單,系統如何知道去哪個控制器?對於我的情況,如果函數調用的返回值爲false,我想顯示登錄表單。 – bogha

+0

@bogha形式與它無關。動作被壓入值棧中並可在JSP中訪問。操作方法通過OGNL表達式訪問。 –

1

不要打架瞭解您的圖書館

停下來一分鐘,瞭解它是如何工作的。那麼你可能不再需要改變它的行爲,但是如果你願意的話,你會知道如何以正確的方式去做。

  • 如果事情是常見的很多動作/ JSP的這是VIEW的東西(如提供必須在每一頁上繪製數據),然後把它放在一個BaseAction,並從其他擴展它動作。

  • 如果事情是常見的很多動作/ JSP的是企業的東西(如檢查,如果用戶登錄或不),做服務器端,with an an Interceptor

不要把邏輯放在JSP中,在這種情況下甚至不能使用JSP。

一些有用的讀數:

Introducing Interceptors

Interceptors

OGNL

OGNL Language guide

但我認爲整個Struts2的文檔中深潛......你會得到更好的代碼,並會在fe後節省大量時間w days ...