[英]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.