gpt4 book ai didi

java - 使用
将 Map 值传递给 Spring MVC Controller

转载 作者:行者123 更新时间:2023-11-29 03:23:30 24 4
gpt4 key购买 nike

在提交页面时,我需要做一些处理并将一些数据发送到 Controller 。我觉得“ map ”适合我传递数据的要求。这是我正在做的:

JSP:

<form:hidden id="passMapData" path="passMapData"/>

Controller :

@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;
}
}

问题:

提交表单时, Controller 中的 BindingResult 显示错误“IllegalStateException:无法将类型 [java.lang.String] 的值转换为所需类型 [java.util.Map]”

我们不能在表单提交中将 Map 类型传递给 Controller ​​吗?

最佳答案

<form:hidden id="passMapData" path="passMapData"/>用于传递隐藏的String数据。基本上它是一个隐藏字段,如<input type='hidden'/>在 html 中。

您不能传递 HashMap在这里,所以你的 NewPageForm.java 必须是,

public class NewPageForm {
private String passMapData = null;

public String getPassMapData() {
return passMapData;
}

public void setPassMapData( String passMapData) {
this.passMapData = passMapData;
}
}

注意:如果需要通过HashMapcontroller , 只需设置 HashmaprequestJSP ,

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

你可以获得相同的Hashmapcontroller作为,

request.getAttribute("passMapData");

希望这对您有所帮助。

关于java - 使用 <form :hidden> 将 Map 值传递给 Spring MVC Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22329431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com