如何在Spring MVC中将对象和哈希映射传递到模型属性,以便我可以同时使用它们?

时间:2019-05-29 04:26:07

标签: java spring spring-mvc jsp

我正在尝试创建一个具有基本属性的“添加员工表单”,例如姓名性别电子邮件等,用户可以填写

在表格中,将为部门提供一个下拉选项,这些部门的列表将由链接哈希映射表预先填充,该链接哈希表将从控制器发送过来

我已经在模型中添加了属性对象类型“ Employee”,因此当我填写表格

并返回到控制器,员工对象将被自动设置

Controller.java

<table>

问题: 我如何在我的模型上添加多个属性(例如,雇员对象和linkedhashmap),以便可以预先填充选择框,并且同时具有可供控制器使用的方法来设置雇员对象的属性并在我保存到数据库时返回控制权给控制器?

任何帮助将不胜感激..谢谢!

编辑: 只是更新,提供的每个答案都有效。.i感到很困惑。

2 个答案:

答案 0 :(得分:0)

不要使用相同的键添加不同的对象,而是将不同的键用于不同的对象 例如:

//use key "departmentOptions" for LinkedHashMap
theModel.addAttribute("departmentOptions", departmentOptions);

Employee theEmployee = new Employee();
//use key "employee" for employee object
theModel.addAttribute("employee", theEmployee);

答案 1 :(得分:0)

如果我正确(根据您的代码的注释)

  

//如何添加多个对象?这样做,以便我可以预先填充   可供选择的部门

您只需为modelAttribute中的每个对象设置不同的名称。在您的代码中,您两次使用相同的名称,因此departmentOptions employee对象将被后面的employee对象替换。为了克服这个问题,只需设置它们的唯一名称,您就可以发送对象列表或其他单一类型对象,如:

//向modelAttribute添加多个对象。

theModel.addAttribute("departmentOptions", departmentOptions);
Employee theEmployee = new Employee();         
theModel.addAttribute("employee", theEmployee);
-----
theModel.addAttribute("anotherObject", anotherObject);