簡體   English   中英

使用以下方式將Map值傳遞給Spring MVC控制器<form:hidden>

[英]Pass Map value to Spring MVC controller using <form:hidden>

在提交頁面時,我需要做一些處理並將一些數據發送到控制器。 我覺得“地圖”很適合我傳遞數據的要求。 這是我在做什么:

JSP:

<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) {

}

NewPageForm.java:

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設置為JSPrequest

request.setAttribute("passMapData",Your HashMap);

您可以在controller獲得與Hashmap相同的Hashmap

request.getAttribute("passMapData");

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM