[英]Pass Map value to Spring MVC controller using <form:hidden>
在提交页面时,我需要做一些处理并将一些数据发送到控制器。 我觉得“地图”很适合我传递数据的要求。 这是我在做什么:
<form:hidden id="passMapData" path="passMapData"/>
@RequestMapping(value = "/newPage/testData", method = RequestMethod.POST)
public String newPageTestData(@Valid @ModelAttribute("npf") NewPageForm npf, BindingResult result, Model model) {
}
public class NewPageForm {
private Map<String, String> passMapData = null;
public Map<String, String> getPassMapData() {
return passMapData;
}
public void setPassMapData(Map<String, String> passMapData) {
this.passMapData = passMapData;
}
}
提交表单时,控制器中的BindingResult显示错误“ IllegalStateException:无法将类型[java.lang.String]的值转换为所需类型[java.util.Map]”
无法将表单类型的Map类型传递给控制器吗?
<form:hidden id="passMapData" path="passMapData"/>
用于传递隐藏的String
数据。 基本上,它是一个隐藏字段,例如html中的<input type='hidden'/>
。
您不能在此处传递HashMap
,因此您的NewPageForm.java必须为,
public class NewPageForm {
private String passMapData = null;
public String getPassMapData() {
return passMapData;
}
public void setPassMapData( String passMapData) {
this.passMapData = passMapData;
}
}
注意:如果需要将HashMap
传递给controller
,只需将Hashmap
设置为JSP
的request
,
request.setAttribute("passMapData",Your HashMap);
您可以在controller
获得与Hashmap
相同的Hashmap
,
request.getAttribute("passMapData");
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.