读书人

!为什么小弟我的ActionForm取不到for

发布时间: 2012-05-28 17:59:54 作者: rapoo

求救求救!为什么我的ActionForm取不到form中的某个值,名字和类型都对应了啊?!!!!
在jsp中有个dept_id 还有其他的 Actionform get的时候 get到得确实null 而其他的都正常get到了。。

jsp页面如下:

HTML code
<%@ page contentType="text/html; charset=GBK" language="java" %><%@page import="com.bOS.bUtil.db.HibSessionFactory"%><%@page import="net.sf.hibernate.*"%><%@page import="com.bOS.bPRO_PersonManage.en.Employees"%><%@page import="com.bOS.bPRO_PersonManage.service.EmployeesDao"%><%@page import="com.bOS.bPRO_PersonManage.en.Employees"%><%@page import="com.bOS.bPRO_PersonManage.service.EmployeesDao"%><%@page import="com.bOS.bPRO_PersonManage.en.Department"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>人力资源管理系统</title><meta http-equiv="Content-Type" content="text/html; charset=GBK"><link href="css/css.css" rel="stylesheet" type="text/css"></head><script src="Js/js.js"></script><script type="text/javascript">function deptValidate(){var dept_id=document.forms["deptForm"].dept_id.value;var dept_name=document.forms["deptForm"].dept_name.value;var manager_name=document.forms["deptForm"].manager_name.value;if(dept_name.length<=0){alert("请填写部门名称!");}else if(manager_name.length<=0){alert("请填写部门经理!");}else {document.forms["deptForm"].submit();}}</script><body><% Department d=(Department)request.getAttribute("department");       if(d!=null){      System.out.println(d.getDept_id());  %><form name="deptForm" method="post" action="modifydept.do?action=updatedept"><table  border="0" align="center" cellpadding="2" cellspacing="1" bordercolor="#FFFFFF" bordercolorlight="#CCCCCC" bordercolordark="#FFFFFF" >  <tr align="right">    <td height="80" colspan="4" align="left" ><strong class="text13">修改部门信息</strong><br></td>  </tr>    <tr align="center">    <td width="80" height="24" align="right" >部门编号:</td>    <td width="150" height="24" align="center" >    <input name="dept_id1" type="text" class="input" id="dept_id1" value="<%=d.getDept_id()%>" disabled="disabled">    <input type="hidden" name="dept_id" id="dept_id" value="<%=d.getDept_id()%>"></td>        <td width="80" height="24" align="right" >部门名称:</td>    <td width="150" height="24" ><input name="dept_name" type="text" class="input" id="dept_name" value="<%=d.getDept_name() %>"></td>  </tr>  <tr align="center">    <td height="24" align="right" >部门经理:</td>    <td height="24" >        <input name="manager_name" type="text" class="input" id="manager_id" value="<%=d.getManager_name() %>"></td>    <td height="24" align="right" >员工人数:</td>    <td height="24" ><input name="count" type="text" class="input" value="<%=d.getCount() %>" ></td>  </tr>   <%  }else{  %>  <tr>    <td height="22" colspan="2" align="center" >没有查到该部门信息!!!</td>    </tr>  <%}%>  <tr>  <tr align="right">    <td height="50" colspan="4" align="center" ><input name="Submit" type="button" class="button" value="提交" onclick="deptValidate();">              <input name="Submit2" type="reset" class="button" value="重置"></td>  </tr></table></form></body></html> 



Actionform如下
Java code
package com.bOS.bPRO_PersonManage.actionform;import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionMapping;import com.bOS.bPRO_PersonManage.en.Department;import com.bOS.bPRO_PersonManage.en.Employees;public class DepartmentForm extends ActionForm{    private Long dept_id;    private Employees employees;    private String dept_name;    private String manager_name;    private Integer count;        public Long getDept_id() {        System.out.println("get id is "+dept_id);        return this.dept_id;    }    public Employees getEmployees() {        return this.employees;    }    public void setEmployees(Employees employees) {        this.employees = employees;    }    public String getDept_name() {        return this.dept_name;    }    public void setDept_name(String dept_name) {        this.dept_name = dept_name;    }    public String getManager_name() {        return manager_name;    }    public void setManager_name(String manager_name) {        this.manager_name = manager_name;    }    public int getCount() {        return count;    }    public void setCount(int count) {        this.count = count;    }    public void setDept_id(long dept_id) {        this.dept_id = dept_id;    }    public String toString() {        StringBuffer toStr = new StringBuffer();        toStr.append("[Department] = [\n");        toStr.append("    dept_id = " + this.dept_id + ";\n");        toStr.append("    dept_name = " + this.dept_name + ";\n");        toStr.append("    manager_name = " + this.manager_name + ";\n");        toStr.append("    count = " + this.count + ";\n");        toStr.append("    ];\n");        return toStr.toString();    }    public void reset(ActionMapping arg0, HttpServletRequest arg1) {        this.dept_id = null;        this.dept_name = null;        this.manager_name = null;        this.count = null;                    }     public Department populate(){                    Department d = new Department();            d.setDept_id(getDept_id());            d.setDept_name(getDept_name());            d.setManager_name(getManager_name());            d.setCount(getCount());            System.out.println("after populate d is "+d);            return d;        }}


用DepartmentDao执行update操作时需要获取department 对象 此时 dep_id 就为空了 然后就抛空指针异常了!!Dao的代码如下
Java code
package com.bOS.bPRO_PersonManage.service;import java.util.List;import net.sf.hibernate.HibernateException;import net.sf.hibernate.Query;import net.sf.hibernate.Session;import net.sf.hibernate.Transaction;import com.bOS.bPRO_PersonManage.en.Department;import com.bOS.bPRO_PersonManage.en.Max;import com.bOS.bUtil.db.HibSessionFactory;public class DepartmentDao {    public void addDepartment(Department department) throws HibernateException {        Session session = HibSessionFactory.currentSession();        Transaction tx = session.beginTransaction();        session.save(department);        tx.commit();        HibSessionFactory.closeSession();    }        public void addMax(Max max) throws HibernateException {        Session session = HibSessionFactory.currentSession();        Transaction tx = session.beginTransaction();        session.save(max);        tx.commit();        HibSessionFactory.closeSession();    }    public void deleteDepartment(Department department)            throws HibernateException {        Session session = HibSessionFactory.currentSession();        Transaction tx = session.beginTransaction();        session.delete(department);        tx.commit();        HibSessionFactory.closeSession();    }    public List listDepartment() throws HibernateException {        Session session = HibSessionFactory.currentSession();        Transaction tx = session.beginTransaction();        Query query = session                .createQuery("select d from Department as d order by dept_id");        List list = query.list();        tx.commit();        HibSessionFactory.closeSession();        return list;    }    public Department loadDepartment(Long dept_id) throws HibernateException {        Session session = HibSessionFactory.currentSession();        Transaction tx = session.beginTransaction();        Department d = (Department) session.load(Department.class, new Long(                dept_id));        return d;    }    public void updateDepartment(Department department)            throws HibernateException {        Department d = loadDepartment(department.getDept_id().longValue());// 原来有.longValue();报错                if (department.getDept_id() != null) {            d.setDept_id(department.getDept_id());        }        if (department.getDept_name() != null) {            d.setDept_name(department.getDept_name());        }                if (department.getManager_name() != null) {            d.setManager_name(department.getManager_name());        }        if (department.getCount() !=null) {            d.setCount(department.getCount());        }        Session session = HibSessionFactory.currentSession();        Transaction tx = session.beginTransaction();        session.update(d);        tx.commit();        HibSessionFactory.closeSession();    }} 



求各位大侠救救我吧…还是我哪个地方马虎了。。。实在找不出来了……郁闷……

[解决办法]
还是类型名字不匹配的问题 好好检查一下就行了。

读书人网 >Java Web开发

热点推荐