我想僅將Struts攔截器應用於路徑的子集。例如。例如,只有路徑以「/ api」開頭的請求。將struts攔截器應用到路徑的子集?
似乎有點像一個沒有腦子的人,但到目前爲止,我的google-fu已經讓我失望了。有人能指引我朝着正確的方向嗎?
謝謝!
我想僅將Struts攔截器應用於路徑的子集。例如。例如,只有路徑以「/ api」開頭的請求。將struts攔截器應用到路徑的子集?
似乎有點像一個沒有腦子的人,但到目前爲止,我的google-fu已經讓我失望了。有人能指引我朝着正確的方向嗎?
謝謝!
攔截器可按每個包定義,例如,使用默認攔截器。在你的例子中,它將是包含「/ api」命名空間的包。
另一種選擇是配置攔截器(每個動作),這是令人煩惱的。
有趣。你知道一個例子,你可以指點我嗎?謝謝。 – denishaskin
@denishaskin一個什麼樣的例子?每個軟件包都有自己的攔截器堆棧,每個軟件包都可以設置自己的默認攔截器 - S2文檔給出了示例。 –
啊,@ suke的回答是我以前想的。 – denishaskin
在你的struts.xml中,你可以定義一個新包
<package name="yourpackage" extends="default" namespace="/api">
<default-interceptor-ref name="yourInterceptorStack"/>
</package>
在動作類,可以按如下方式指定的包,
@ParentPackage("yourpackage")
public class YourAction extends ActionSupport {
...
}
HTTP://struts.apache。組織/ 2.3.4 /文檔/ interceptors.html。在struts.xml文件中,我們可以定義多個包。請參考以下示例http://stackoverflow.com/questions/3662705/struts2-have-two-packages-in-struts-xml-point-to-dynamic-web-root as @Dave說我們可以定義攔截器棧包級別。 –