将多维数组从jsp传递给控制器

时间:2013-12-31 08:33:41

标签: jquery arrays spring jsp spring-mvc

我正在创建一个更新页面,我使用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 

});

请指教。在firebug控制台中,我不断收到以下错误消息,但我认为它与此无关

  

未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则文档将在某些浏览器配置中使用乱码文本进行渲染。必须在文档或传输协议中声明页面的字符编码。

1 个答案:

答案 0 :(得分:0)

  

我这样做是为了不需要在服务器上检查更新的属性。

这是错误的。

您应始终检查服务器上用户发送的所有内容 客户端验证是不够的,因为客户端很容易欺骗它。

我建议的只是让propertyName成为表单支持对象的一部分并验证服务器端。