2013-10-08 2 views
5

Чтобы получить HttpServletRequest в перехватчика я использовал ниже код:Get HttpServletRequest в Struts 2 перехватчик

HttpServletRequest request =(HttpServletRequest) ActionContext.getContext().get(HTTP_REQUEST); 

Я пытался реализовать ServletRequestAware в перехватчик, но это не сработало.

Есть ли лучшие способы получить HttpServletRequest в перехватчике?!

+0

Зачем вам нужен 'HttpServletRequest' в перехватчик? –

+0

Я хочу разработать и перехватчик, который не позволяет Ajax-запросу напрямую звонить по url. См. Http://stackoverflow.com/questions/14621539/how-to-determine-whether-a-request-is-ajax-or-normal. Этот перехватчик будет находиться в стеке перехватчика, который предотвратит эти запросы. –

ответ

4

сервлет материала вы можете получить ссылки servletConfig перехватчика. После вызова этого перехватчика вы можете получить материал сервлета от ServletActionContext.

HttpServletRequest request = ServletActionContext.getRequest(); 
0

вы получите ActionInvoction try getInvocationContext() он вернет экземпляр «ActionContext», попробуйте .get(HTTP_REQUEST); на этом.

или

использование

ServletActionContext.getRequest() 
4

Вы должны использовать ActionInvocation#getInvocationContext(), чтобы получить ваш запрос.

public String intercept(ActionInvocation invocation) throws Exception { 
    ActionContext context = invocation.getInvocationContext(); 
    HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST); 
    // ... 
} 
+1

Это должно быть утвержденным ответом на использование внутреннего перехватчика. –

1

использование

final HttpServletRequest request = (HttpServletRequest) ActionContext.getContext() 
               .get(ServletActionContext.HTTP_REQUEST); 

он работал для меня

+0

Это тот же код, что и в OP. –

Смежные вопросы