如果我们将数据作为请求正文而不作为url参数传递,则如何在Struts拦截器中获取数据

时间:2019-06-26 13:55:05

标签: json rest struts2

到目前为止,我们已经使用了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
       }
  }

0 个答案:

没有答案