返回错误:Http 500
java.lang.NullPointerException
com.pingpingme.action.DepartmentAction.save(DepartmentAction.java:58)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
请求页面的代码是:
<%@ page contentType="text/html; charset=GBK" language="java"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<div class="page">
<div class="pageContent">
<s:form theme="simple" method="post" action="Departmentsave" class="pageForm required-validate" onsubmit="return validateCallback(this,navTabAjaxDone)" >
<div class="pageFormContent" layoutH="56">
<p> <label>公司编号:</label> <s:textfield name="companycode" size="30"></s:textfield> </p>
<p> <label>部门编号:</label> <s:textfield name="departmentcode" size="30"></s:textfield> </p>
<p> <label>部门名称:</label> <s:textfield name="departmentname" size="30" class="required" alt="请输入部门名称"></s:textfield> </p>
<p> <label>部门描述:</label> <s:textfield name="departmentdescription" size="30" class="requeired"></s:textfield> </p>
<p> <label>上级部门:</label> <s:textfield size="30" name="parentdepartment"></s:textfield> </p>
<p> <label>显示顺序:</label> <s:textfield size="30" name="indexorder" class="required"></s:textfield> </p>
<p> <label>备注:</label> <s:textfield size="30" name="re"></s:textfield> </p>
</div>
<div class="formBar">
<ul>
<li> <div class="buttonActive"> <div class="buttonContent"> <button type="submit">保存</button> </div> </div> </li>
<li>
<div class="button">
<div class="buttonContent"> <button type="reset">取消</button> </div>
</div>
</li>
</ul>
</div>
</s:form>
</div>
</div>
Action里的代码是:
package com.pingpingme.action;
import java.util.ArrayList;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.ServletActionContext;
import com.pingpingme.dao.DepartmentDao;
import com.pingpingme.actionform.Department;
import com.pingpingme.tools.Change;
public class DepartmentAction extends ActionSupport {
DepartmentDao departmentdao=new DepartmentDao();
private Department department;
public void setDepartment(Department department) {
this.department=department;
}
public Department getDepartment() {
return department;
}
//添加一新的部门,成功后跳转到部门浏览页面
public String save() throws Exception {
this.getDepartment();
System.out.println(department);
System.out.println(getDepartment().getDepartmentname());
department.setDepartmentcode(getDepartment().getDepartmentcode());
department.setDepartmentname(getDepartment().getDepartmentname());
department.setParentdepartment(getDepartment().getParentdepartment());
department.setDepartmentdescription(getDepartment().getDepartmentdescription());
department.setCompanycode(getDepartment().getCompanycode());
department.setIndexorder(getDepartment().getIndexorder());
department.setRe(getDepartment().getRe());
departmentdao.insertDepartment(department);
return SUCCESS;
}
}
DepartmentDao的代码是:
package com.pingpingme.dao;
import java.sql.*;
import java.util.ArrayList;
import com.pingpingme.dao.DBConnectionManager;
import com.pingpingme.actionform.Department;
public class DepartmentDao {
private DBConnectionManager db;
private Connection con=null;
private ResultSet rs=null;
private PreparedStatement ps=null;
private String sql="";
//释放连接资源
public void freeCon() {
try {
if(rs!=null) rs.close();
if(ps!=null) ps.close();
}catch (SQLException ex) {
ex.printStackTrace();
}
if(db!=null) db.freeConnection("idb", con);
}
//添加一部门记录
public void insertDepartment(Department department) {
db=DBConnectionManager.getInstance();
con=db.getConnection("idb");
sql="insert into tb_department values('"+department.getDepartmentcode()+"','"+department.getDepartmentname()+"'"+
"'"+department.getParentdepartment()+"','"+department.getDepartmentdescription()+"','"+department.getCompanycode()+"'"+
"'"+department.getIndexorder()+"','"+department.getRe()+"')";
System.out.println(sql);
try {
ps=con.prepareStatement(sql);
ps.executeUpdate();
}catch (SQLException ex) {
ex.printStackTrace();
}finally {
freeCon();
}
}
}想尽了一切办法,可还是报空值返回错误,各位如何解决,谢谢!
java.lang.NullPointerException
com.pingpingme.action.DepartmentAction.save(DepartmentAction.java:58)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
请求页面的代码是:
<%@ page contentType="text/html; charset=GBK" language="java"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<div class="page">
<div class="pageContent">
<s:form theme="simple" method="post" action="Departmentsave" class="pageForm required-validate" onsubmit="return validateCallback(this,navTabAjaxDone)" >
<div class="pageFormContent" layoutH="56">
<p> <label>公司编号:</label> <s:textfield name="companycode" size="30"></s:textfield> </p>
<p> <label>部门编号:</label> <s:textfield name="departmentcode" size="30"></s:textfield> </p>
<p> <label>部门名称:</label> <s:textfield name="departmentname" size="30" class="required" alt="请输入部门名称"></s:textfield> </p>
<p> <label>部门描述:</label> <s:textfield name="departmentdescription" size="30" class="requeired"></s:textfield> </p>
<p> <label>上级部门:</label> <s:textfield size="30" name="parentdepartment"></s:textfield> </p>
<p> <label>显示顺序:</label> <s:textfield size="30" name="indexorder" class="required"></s:textfield> </p>
<p> <label>备注:</label> <s:textfield size="30" name="re"></s:textfield> </p>
</div>
<div class="formBar">
<ul>
<li> <div class="buttonActive"> <div class="buttonContent"> <button type="submit">保存</button> </div> </div> </li>
<li>
<div class="button">
<div class="buttonContent"> <button type="reset">取消</button> </div>
</div>
</li>
</ul>
</div>
</s:form>
</div>
</div>
Action里的代码是:
package com.pingpingme.action;
import java.util.ArrayList;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.ServletActionContext;
import com.pingpingme.dao.DepartmentDao;
import com.pingpingme.actionform.Department;
import com.pingpingme.tools.Change;
public class DepartmentAction extends ActionSupport {
DepartmentDao departmentdao=new DepartmentDao();
private Department department;
public void setDepartment(Department department) {
this.department=department;
}
public Department getDepartment() {
return department;
}
//添加一新的部门,成功后跳转到部门浏览页面
public String save() throws Exception {
this.getDepartment();
System.out.println(department);
System.out.println(getDepartment().getDepartmentname());
department.setDepartmentcode(getDepartment().getDepartmentcode());
department.setDepartmentname(getDepartment().getDepartmentname());
department.setParentdepartment(getDepartment().getParentdepartment());
department.setDepartmentdescription(getDepartment().getDepartmentdescription());
department.setCompanycode(getDepartment().getCompanycode());
department.setIndexorder(getDepartment().getIndexorder());
department.setRe(getDepartment().getRe());
departmentdao.insertDepartment(department);
return SUCCESS;
}
}
DepartmentDao的代码是:
package com.pingpingme.dao;
import java.sql.*;
import java.util.ArrayList;
import com.pingpingme.dao.DBConnectionManager;
import com.pingpingme.actionform.Department;
public class DepartmentDao {
private DBConnectionManager db;
private Connection con=null;
private ResultSet rs=null;
private PreparedStatement ps=null;
private String sql="";
//释放连接资源
public void freeCon() {
try {
if(rs!=null) rs.close();
if(ps!=null) ps.close();
}catch (SQLException ex) {
ex.printStackTrace();
}
if(db!=null) db.freeConnection("idb", con);
}
//添加一部门记录
public void insertDepartment(Department department) {
db=DBConnectionManager.getInstance();
con=db.getConnection("idb");
sql="insert into tb_department values('"+department.getDepartmentcode()+"','"+department.getDepartmentname()+"'"+
"'"+department.getParentdepartment()+"','"+department.getDepartmentdescription()+"','"+department.getCompanycode()+"'"+
"'"+department.getIndexorder()+"','"+department.getRe()+"')";
System.out.println(sql);
try {
ps=con.prepareStatement(sql);
ps.executeUpdate();
}catch (SQLException ex) {
ex.printStackTrace();
}finally {
freeCon();
}
}
}想尽了一切办法,可还是报空值返回错误,各位如何解决,谢谢!
解决方案 »
- 大虾们,我是初初菜鸟
- java抽象问题求助
- 把eclipse的项目放在myeclipse中运行
- java 数据类型转化,可能你没注意哦
- 我想用war包中的程序修改web-inf/classes下的配置文件,但是每次修改过后,重启以后,配置文件就有变为最初的值,请问怎么解决?
- java中如何将wsdl文件如何转化为本地类
- jboss4.04问题:在控制台的左边applet显示不出
- @@@@@谁了解大唐电信的面试~~~~~~~
- 初学者学习如何适用jdbc连接sybase数据库
- 初学J2EE的疑问,在J2EE架构中WebLogic、WebSphere或JBoss起到什么作用?他们的各自的优缺点是什么?
- 关于biz与dao层的问题讨论 请大家多给点意见
- 关于MyEclipse的问题!!
但你页面传递的时候和后台关联不起来吧:
<s:textfield name="companycode" size="30"></s:textfield>
<s:textfield name="departmentcode" size="30"></s:textfield>
这里的name后台能认识么???取的名字好像不对吧
这样struts2的值拦截器会自动将页面的数据加入到当前对象对应的属性当中。