跳到主要內容

發表文章

目前顯示的是有「Struts2」標籤的文章

Struts2 - 攔截HTML或JSP

Problem 許多人都會有在Struts中如何攔截過濾HTML或JSP的需求。使用者想連結至某一個網頁,並不一定會登入才連結。他可能會將有興趣的網頁直接存到我的最愛,下次就直接連過去了。假如他是處於session過期或沒登入的情況呢?也許這個網頁就無法正常顯示了。在Struts中該如何在存取某些網頁前,先做狀態的檢查呢? How to? 透過Filter web.xml 如果使用Struts範例中的設定,通常會將所有的URL請求讓struts2處理。在這我們可以增加一個DelegatingFilterProxy,當使用者請求*.html的頁面時,會經過我所實作的DelegatingFilterProxy去確認session狀態。 <filter > <filter-name > struts2 </filter-name > <filter-class > org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class > </filter > <filter > <filter-name > DelegatingFilterProxy </filter-name > <filter-class > org.tonylin.funny.web.DelegatingFilterProxy </filter-class > </filter > <filter-mapping > <filter-name > struts2 </filter-name > <url-pattern > * </url-pattern > </filter-mapping > <filter-mapping > <filter-name > DelegatingFilterProxy </filter-name > <url...

Struts2 - 如何將相關的操作放置於同一個Action中?

Problem 先前做的國軍登出倒數計時器中,有個正在受苦受難弟兄的排行榜,可以根據入伍日期、退伍日期、%數與剩餘天數去排序。除了排序外,還包含要取得不同種類資料的動作。我們可以選擇把這些動作寫成不同的Actions,但如果每一個都寫成一個Action,會讓Action類別很龐大。Struts提供了DispatchAction讓你可以封裝多個動作到一個Action中,以方便管理減少維護困難。 How to? Java Action 我定義BillBoardAction做為DispatchAction的Controller負責與排行榜功能相關的邏輯流程控制。底下的程式碼主要讓大家知道大概是長怎樣,省略了很多實作細節。基本上就是一個操作對應一個method。 public class BillBoardAction extends ActionSupport implements ServletRequestAware,ServletResponseAware { public String getPercentageBillboradInfo ( ) { return Action . NONE ; } public String getJoinDateBillboradInfo ( ) { return Action . NONE ; } public String getLeftDaysBillboradInfo ( ) { return Action . NONE ; } public String getEndDateBillboradInfo ( ) { return Action . NONE ; } public String getLogoutInformation ( ) { return Action . NONE ; } Struts Config struts config的定義,需要關注的就是name、method與class: name: ui呼叫的Action名稱。 class: DispatchAction的類別名稱。 method: 對應功能的method名稱。 由於我是透過ajax方式去...