我有带有员工个人信息和联系信息的Simple Spring表单。我有2个Bean EmpPersonalInfo和EmpContactInfo,如何将2个对象与“ command”绑定并在empform中显示。 我得到了以下错误,例如bean类[java.util.HashMap]的无效属性'name':Bean属性'name'不可读或具有无效的getter方法:getter的返回类型与setter的参数类型匹配吗? ?
经验
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form:form action="saveemp" method="post">
<table>
<tr> <td> Name</td>
<td> <form:input path="name"/></td></tr>
<tr> <td>Id </td>
<td><form:input path="id"/> </td></tr>
<tr><td> Current Address</td>
<td><form:input path="empcontactinfo.currentAddress"/> </td> </tr>
</table>
<input type="submit" value="Submit">
</form:form>
</body>
</html>
Empcontroll.class
@RequestMapping("/empform")
public ModelAndView showForm()
{
Map<String,Object> modelmap=new HashMap<String,Object>();
modelmap.put("personalinfo",new EmpPersonalInfo() );
modelmap.put("contactinfo", new EmpContactInfo());
return new ModelAndView("empform","command",modelmap);
}
答案 0 :(得分:1)
Path属性使用Java Bean约定将输入字段的值放入Java属性中,以用作控制器方法中的@ModelAttribute
。
@RequestMapping(...)
public String saveEmp(@ModelAttribute("employee") EmpPersonalInfo employee) {
// ...
}
如果您只想在该地图中显示这两个对象内的值,则可以使用
<c:out value="${command['contactinfo'].contact}"/>