到目前为止,我们已经使用了jQuery AJAX,如果我们想在拦截器中捕获用于执行以下操作的任何参数,则如下所示:
public String intercept(ActionInvocation actionInvocation) throws Exception {
Map<String, Object> sessionAttributes =
actionInvocation.getInvocationContext().getSession();
Map<String, Object> parameters =
actionInvocation.getInvocationContext().getParameters();
String[] sid = (String[]) parameters.get("sessionId");
}
现在,我们正在发出Rest请求,并且所有参数都在邮递员中作为请求正文传递。如果我们使用上面的代码,则无法获取作为JSON中的主体传递的任何参数。
struts.xml
<interceptor-ref name="json"></interceptor-ref>
<interceptor-ref name="customSessionInterceptor"></interceptor-ref>
即使我将json拦截器放在自定义拦截器的前面和后面,它也不会被拾取。
拦截器类
public class SessionInitInterceptor implements Interceptor {
privtae String sessionId;
//getter and setters
@Override
public String intercept(ActionInvocation actionInvocation) throws
Exception {
//Want to catch sessionid here which is passed from request body
}
}