<form action="addEmployee" method="post">
   <table>
   <tr><td>name</td><td><input type="text" name="employee.name" /></td></tr>
   <tr><td>email</td><td><input type="text" name="employee.email" /></td></tr>
   <tr><td>grade</td><td><input type="text" name="employee.grade" /></td></tr>
   <tr><td>pwd</td><td><input type="text" name="employee.pwd" /></td></tr>
   <tr><td>salary</td><td><input type="text" name="employee.salary" /></td></tr>
   <tr><td>department</td><td>
   <!-- 这里部门的信息,应当从数据库提出,而不能写死. -->
  <select name="employee.department">
   <option value="5">财务部</option>
   </select>
   </td></tr>
   <tr><td><input type="submit" value="添加"/></td>
   <td><input type="reset" value="重填" /></td></tr>
   </table>
   </form>上面是前台的注册页面,向后台传递参数时候我采用的是Domain Model (实体模型)方式传递,对应有一个Employee 类 定义如下public class Employee {
private Integer id;
private String name;
private String email;
private String pwd;
private Integer grade;
private java.util.Date hiredate;
private Float salary;
private Department department;
set和get方法略注册页面提交给了如下action的addEmployee方法public class EmployeeAction extends ActionSupport { private DepartmentServiceInter departmentService;
private EmployeeServiceInter  employeeService;
private Employee employee;

public void setEmployeeService(EmployeeServiceInter employeeService) {
this.employeeService = employeeService;
}
public void setDepartmentService(DepartmentServiceInter departmentService) {
this.departmentService = departmentService;
}
public String addEmployee(){
System.out.println("进入EmployeeAction的addEmployee方法");
employeeService.addEmployee(employee);
return SUCCESS;
}可是在执行时候会报告  无法从String格式转换为Deparment格式,可是如果要将前台的部门信息也更新到数据库里,要怎么做在可以方便的接受。
我也实验部门单独采用普通参数传递格式,进入后将其转换为Deparment格式,然后再通过set函数赋值给employee对象,可是也报告失败strutsstringhibernatespring

解决方案 »

  1.   

    我解决了,在后台action里定义一个Deparment对象dep,前台对应select处使用dep.id这样就能将数据封装成Deparment对象格式,然后在后台再用set方法将dep注入到employee对象里。现在的疑问是,有没有什么方式可以不用这么麻烦比如采用employee.dep.id系统先将生成一个Deparment对象将id写进去,然后再将对应的Deparmen对象注入employee 。这样后台就不用做任何多于操作了
    我实验了select处这么写不行employee.dep.id。是否有其他写法 或者处理方法 是程序简化