Servlets 无法读取请求。getInputStream

Servlets 无法读取请求。getInputStream,servlets,struts2,Servlets,Struts2,下面是我的动作课 import java.io.InputStream; import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.opensymphony.xwork2.ActionSupport; import org.apache.struts2.Servl

下面是我的动作课

import java.io.InputStream;

import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.opensymphony.xwork2.ActionSupport;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;

public class AccessRequest extends ActionSupport implements 
                  ServletRequestAware,ServletResponseAware {

  /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private HttpServletRequest request;
      private HttpServletResponse response;

     /**
     * @return the response
     */
    public HttpServletResponse getResponse() {
        return response;
    }

    /**
     * @param response the response to set
     */
    public void setResponse(HttpServletResponse response) {
        this.response = response;
    }

    /**
     * @return the request
     */
    public HttpServletRequest getRequest() {
        return request;
    }

    /**
     * @param request the request to set
     */
    public void setRequest(HttpServletRequest request) {
        this.request = request;
    }

    public void setServletRequest(HttpServletRequest request){
            this.request = request;
          }

          public HttpServletRequest getServletRequest(){
            return request;
          }

          public void setServletResponse(HttpServletResponse response){
            this.response = response;
          }

          public HttpServletResponse getServletResponse(){
            return response;
          }


  public String execute() throws Exception{
        request = ServletActionContext.getRequest();
        InputStream in = null;
        ServletInputStream si = request.getInputStream();
        System.out.println(si.available());//Getting 0
        System.out.println(request.getContentLength()); //Getting 938
        return SUCCESS;
  }

}
我得到si.available()=0,其中作为请求。getContentLength()显示938

为什么struts没有读取请求。getInputstream

在Struts2中使用Servlet时,我面临同样的问题

有什么想法吗?据我所知,请帮忙

Struts框架使用getParameter将数据填充到表单bean中 在调用execute方法之前,我们不能使用request.getInputStream


请纠正我,如果它的工作

你已经问过这个问题:请不要再次发布相同的问题。如果您觉得答案不适合您,或者您没有得到好的答案,那么您应该使用
edit
链接来更新/改进您的问题。我只在struts中遇到这个问题。在JSF和普通servlet项目中,它工作得很好。我有点好奇地知道“request=ServletActionContext.getRequest();”得到的是什么值。请检查您的请求是否为空。不,我没有得到空值