<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
我实验了select处这么写不行employee.dep.id。是否有其他写法 或者处理方法 是程序简化