【发布时间】:2013-12-31 08:33:40
【问题描述】:
我正在创建一个更新页面,我在其中使用 jquery 创建一个由更新的 propertyName 和旧值组成的二维数组。我这样做是为了不需要在服务器上检查更新的属性。这个 updatedParam 变量我需要将它传递给 Spring 控制器。这应该怎么做?此变量不是模型支持的表单的一部分。
我已经在控制器中尝试了以下方法,但它不起作用
@RequestMapping(value = "/updateEmployee.html", method = RequestMethod.POST)
public String updateEmployee(
BindingResult result, @ModelAttribute("employee") Employee employee,
ModelMap model,
@ModelAttribute(value = "updatedParam") Map<String,String> updatedParam) {
我什至试过这个,但即使它不起作用
@RequestMapping(value = "/updateEmployee.html", method = RequestMethod.POST)
public String updateEmployee(
BindingResult result, @ModelAttribute("employee") Employee employee,
ModelMap model,
@ModelAttribute(value = "updatedParam") String[][] updatedParam) {
注意:updatedParam 是我在 jsp 中生成的变量,我希望在提交表单时调用此操作时传递它。
另外请注意表单提交代码
$("#updateEmployeeForm").submit(function(){
//Compute updatedParam Here
// I tried submiting the form using ajax and passing updated param as data but does not work
});
请指教。在萤火虫控制台中,我不断收到以下错误消息,但我认为它与此无关
未声明 HTML 文档的字符编码。如果文档包含 US-ASCII 范围之外的字符,则文档将在某些浏览器配置中呈现乱码。页面的字符编码必须在文档或传输协议中声明。
【问题讨论】:
-
用spring-mvc处理数组并不容易。我认为,您最好将所有数据放入一个新的类实例中,并将其作为 RequestBody/ResponseBody 传递。
-
不清楚你想要什么。您是否发送表单数据和更新的字段?你为什么要为一个结构明确的对象使用数组?如果它是属性名称-> 值而不是地图。除此之外,客户端可能会发送虚假数据。依赖客户是一种不好的做法。
标签: jquery arrays spring jsp spring-mvc