我打算編寫一個攔截器,在響應中添加一些頭文件。目前,我有以下攔截在Struts2攔截器中接收不可預知的參數
public class CachingInterceptor extends AbstractInterceptor{
@Override
public String intercept(ActionInvocation ai) throws Exception {
HttpServletResponse response = (HttpServletResponse) getActionContext(ai).get(StrutsStatics.HTTP_RESPONSE);
if(null != response) {
response.setHeader("Cache-control","no-store,no-cache");
response.setHeader("Pragma","no-cache");
response.setHeader("Expires","-1");
}
return ai.invoke();
}
}
我需要提高它在頭可以在配置文件中定義這樣一種方式(struts.xml
)
....
<!-- Define and add following interceptor in default interceptor stack -->
<interceptor name="CachingInterceptor" class="demo.CachingInterceptor">
....
<action name="myAction" class="demo.myAction">
....
<param name="Cache-control">no-store,no-cache</param>
<param name="Pragma">no-cache</param>
<param name="Expires">-1</param>
....
</action>
現在,我已經在我的攔截器類中定義的屬性獲取標頭值
private String pragma; //with getter, setter
private String expires; //with getter, setter
這裏我有兩個問題。
1•我無法在java中定義屬性「Cache-control」。
2•標題名稱是不可預測的,即任何標頭可以在配置中被定義爲
<param name="other-header">some-value</param>
我有兩個問題:
- 我怎麼能接受在Struts2配置中定義的攔截任何頭。
- 有沒有更好的方法來做這件事?
WTQ?您在攔截器放置的靜態參數中接收標題。什麼是更好地滿足您的要求。所描述的 – 2013-04-05 09:08:39
,我想定義HTTP頭,同時在配置中映射動作。 – 2013-04-05 13:10:00