2017-04-18 17 views
0

我正在研究一個基於Mason-perl的web應用程序,並且希望在它觸及流程並生成視圖之前攔截特定的url(我將進行一些條件檢查並重定向如果該條件滿足,可以使用不同的URL)。在基於彈簧的mvc中,我們有interceptor的概念,這有助於我們實現這一點。有人可以指出一種方式,我怎樣才能實現這個基於梅森perl的web應用程序我們如何在基於Mason-perl的web應用程序中實現攔截器

+0

梅森本身並不是MVC。這只是V(如在_view_中)。你怎麼使用它?你使用自己的路由處理,還是使用另一個Web框架?您可能必須在調度員中執行此操作。梅森本身並沒有提供你想要的。查看[run'源代碼](https://metacpan.org/source/JSWARTZ/Mason-2.24/lib/Mason/Interp.pm#L358)和['_make_request'](https://metacpan.org /source/JSWARTZ/Mason-2.24/lib/Mason/Interp.pm#L679)。 – simbabque

+1

我對攔截器概念並不熟悉,也許你需要像Mason :: Plugin :: RouterSimple這樣的東西?請看這個問題,如果它對你有用http://stackoverflow.com/questions/32353992/sp​​ecify-route-rules-and-route-to-different-components – fthiella

+0

@simbabque你的評論是不完全真實的。梅森通常被用作視圖,**但是**你可以單獨使用它,它也支持應用程序的控制器部分。 (如果您檢查請求調度如何工作到組件,自動處理程序和分叉處理程序就足夠了)。此外,梅森完全支持Mason :: Plugin :: RouterSimple的路由。一起提供足夠強大的「C」部分。 :)閱讀更舊的教程(目前的教程它被轉移到詩人,但舊的仍然完全有效):https://metacpan.org/pod/release/JSWARTZ/Mason-2.16/lib/Mason/Manual/ Tutorial.pod#MASON-AND-MVC – jm666

回答

0

在石匠這樣做的傳統方式是在包裝鏈中使用自動處理程序。

如果您有一個dhandler或.m文件,您可以在將處理傳遞給其他文件之前,在同一目錄中添加一個自動處理程序文件以執行檢查。如果您已經在各個地方使用了自動處理程序,並且希望確保每個頁面都執行了檢查,請在根目錄中放置一個自動處理程序並在其中執行檢查。

有關更全面的討論,請參閱Mason Book chapter 3(從自動搬運機部分開始)。

相關問題