Java员工管理系统的问题

最近学SSH项目整合的员工管理系统,大部分功能都可以实现,但是在员工管理界面对
员工进行编辑保存后,员工的所属部门一栏就会变成空,新增员工的话,那一栏的属性
也会为空,按一下保存就会报Error setting expression 'department.did' with value '[Ljava.lang.String;@7e7a0b12'和target is null for setProperty(null, "did", [Ljava.lang.String;@7e70b12),调了很久没搞明白,还希望有懂的同学不吝赐教

我已将代码上传到网盘以供愿意提供帮助的同学调试,http://pan.baidu.com/s/1mi2qZjU,提前谢谢了

看看,跟你一样的错误http://www.cnblogs.com/communist/p/6045823.html

1.EmployeeAction.java
package com.muke.employee.action;

import java.util.List;
import com.muke.employee.domain.Department;
import com.muke.employee.domain.Employee;
import com.muke.employee.domain.PageBean;
import com.muke.employee.service.DepartmentService;
import com.muke.employee.service.EmployeeService;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

/*

  • 员工管理的Action类
    */
    public class EmployeeAction extends ActionSupport implements ModelDriven{

    //模型驱动所需的对象
    private Employee employee = new Employee();

    //使用模型驱动接收参数
    @Override
    public Employee getModel() {
    // TODO Auto-generated method stub
    return employee;
    }

    //注入业务层的类
    private EmployeeService employeeService;

    public void setEmployeeService(EmployeeService employeeService) {
    this.employeeService = employeeService;
    }

    //登陆执行的方法
    public String login(){
    System.out.println("login方法执行了。。。");
    //调用业务层的类
    Employee existEmployee = employeeService.login(employee);
    if(existEmployee == null){
    //登录失败
    this.addActionError("用户名或密码错误!");
    return INPUT;

    }else{
    //登陆成功
    ActionContext.getContext().getSession().put("existEmployee", existEmployee);
    return SUCCESS;
    }
    }

    //接受当前的页数
    private Integer currPage = 1;

    public void setCurrPage(Integer currPage) {
    this.currPage = currPage;
    }

    //分页查询员工方法
    public String findAll(){
    PageBean pageBean = employeeService.findByPage(currPage);
    //将pageBean存放到值栈中
    ActionContext.getContext().getValueStack().push(pageBean);
    return "findAll";
    }

    //注入部门管理的Service
    private DepartmentService departmentService;
    public void setDepartmentService(DepartmentService departmentService) {
    this.departmentService = departmentService;
    }

    //跳转到添加员工页面的方法
    public String saveUI(){
    //查询所有部门
    List list = departmentService.findAll();
    //将结果保存到值栈中,集合用set,对象用push
    ActionContext.getContext().getValueStack().set("list", list);
    //ServletActionContext.getRequest().setAttribute("list", list);
    System.out.println(list);
    return "saveUI";
    }

    //添加员工的执行方法
    public String save(){
    employeeService.save(employee);
    return "saveSuccess";
    }

    //编辑员工的执行方法
    public String edit(){
    //根据Id查询员工
    employee = employeeService.findById(employee.getEid());
    //查询所有部门
    List list = departmentService.findAll();
    ActionContext.getContext().getValueStack().set("list", list);
    return "editSuccess";
    }

    //修改员工的执行方法
    public String update(){
    employeeService.update(employee);
    return "updateSuccess";
    }

    //删除员工的执行方法
    public String delete(){
    employee = employeeService.findById(employee.getEid());
    employeeService.delete(employee);
    return "deleteSuccess";
    }
    }


2.员工添加界面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">










员工添加

保存   
退回




























姓     名  :      性     别  :
所属部门:      工     号  :
出生日期:      入职日期:
账户名称:      账户密码:

/s:form


你保存该字段,该字段值为空。你看看你的sql语句有没有问题

就是自动生成的,会有这种情况出现,会有默认没有改动就设为空的,你看看自动生成的有几个update方法