当前位置: 代码迷 >> Java Web开发 >> struts2 request有关问题
  详细解决方案

struts2 request有关问题

热度:37   发布时间:2016-04-17 11:09:05.0
struts2 request问题
Java code
public class CreateTableSpaceAction extends ActionSupport{        private static final long serialVersionUID = 1L;            private HttpServletRequest request;        public HttpServletRequest getRequest() {            return request;        }        public void setRequest(HttpServletRequest request) {            this.request = request;        }                @Override        public String execute() throws Exception{                        System.out.println("======CreateTableSpaceAction=====");            //这里报空指针            String spaceName = (String) request.getAttribute("spaceName");//34行            System.out.println("spaceName:"+spaceName);            String spaceSize = request.getParameter("spaceSize");            String spacePath = request.getParameter("spacePath");            SysUserPOJO sysUserPOJO = getsysUser(request);            InitSysDAO initSysDAO = new InitSysDAO();



严重: Servlet.service() for servlet default threw exception
java.lang.NullPointerException
at com.asideal.action.sysInit.CreateTableSpaceAction.execute(CreateTableSpaceAction.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

------解决方案--------------------
你在提交时有没有传spaceName这个参数
------解决方案--------------------
表单提交问题,看参数名对应上了嘛,还有struts2最好不要这么传值,直接get/set接值比较好
------解决方案--------------------
我记得request有其他方法可以取,你那个申明get set方法应该取不到
------解决方案--------------------
request null? 还是request.getAttribute("spaceName") null 可以用输出先调试的看下
------解决方案--------------------
public class CreateTableSpaceAction extends ActionSupport{

private static final long serialVersionUID = 1L;
private String spaceName;
public String getSpaceName(){
return spaceName;
};
public void setSpaceName(spaceName){
this.spaceName=spaceName;
}

private HttpServletRequest request;

public HttpServletRequest getRequest() {
return request;
}
public void setRequest(HttpServletRequest request) {
this.request = request;
}

//如果是用post的话这样就行了,如果是get的话就要传spaceName=?(?号是你要传的值)

@Override
public String execute() throws Exception{

System.out.println("======CreateTableSpaceAction=====");
System.out.println("spaceName:"+spaceName);
String spaceSize = request.getParameter("spaceSize");
String spacePath = request.getParameter("spacePath");
SysUserPOJO sysUserPOJO = getsysUser(request);
InitSysDAO initSysDAO = new InitSysDAO();

------解决方案--------------------
request那样能取到吗?试试这样:httpservletrequest request=servletactionsupport.getrequest();
------解决方案--------------------
拜托,request.getParameter("键名")
------解决方案--------------------
request.getAttribute("spaceName");
改为 request.getParameter("spaceName");
试试
------解决方案--------------------
boolean isExist = spaceIsExist(initSysDAO,spaceName,jdbc_ora_username,jdbc_ora_password
  相关解决方案