相关疑难解决方法(0)

使用jQuery将表单数据转换为JavaScript对象

如何将表单的所有元素转换为JavaScript对象?

我想有一些方法从我的表单中自动构建一个JavaScript对象,而不必遍历每个元素.我不想要返回的字符串,$('#formid').serialize();也不想要返回的地图$('#formid').serializeArray();

javascript jquery serialization json

1580
推荐指数
21
解决办法
95万
查看次数

Spring 3 AJAX POST请求与@RequestBody以及@ModelAttribute和@SessionAttribute一起使用?

有一个Java spring MVC web应用程序,并正在发出jquery ajax post请求.我的控制器设置为接收和发送json数据.一切正常,JSON字符串格式良好,Controller可以创建并填充Command对象,并使用JSON请求数据的内容填充它.但是,我正在更新Contact对象的数据,而我的JSP表单元素仅包含数据库更新所需的所有数据的子集.在我对具有表单的JSP页面的初始GET请求中,我从数据库中检索所有必需的数据,填充Contact Command对象,然后将该命令对象绑定到Model.

如果我正在进行正常的POST提交表单提交,我相信只是将我的命令对象声明为@SessionAttribute,并在我的onSubmit()POST方法中使用@ModelAttribute引用该Command对象就足够了.Spring将从我的会话中检索已填充的命令对象,然后绑定(覆盖)由于POST请求而更改的那些值.然后,可以将此更新的命令对象用作DB更新的参数.

但是,我正在使用Spring 3并利用@RequestBody参数类型.我无法让Spring给我会话对象并自动绑定请求中的新值.它或者只提供旧的会话命令对象(不应用更改)或仅提供POST请求中的值的新命令对象.

这是一个小代码 - 不起作用:

@SessionAttributes("contactCommand")
@Controller
public class ContactController {


  @RequestMapping(value = "/editContact", method=RequestMethod.GET)
public String init(ModelMap model, Locale locale, HttpServletRequest request, HttpServletResponse response) throws GeneralException {
    final ContactCommand cmd = new ContactCommand();
    // populate with data from DB etc
    model.addAttribute("contactCommand", cmd);
    // etc
}

@RequestMapping(value="/editContact",method=RequestMethod.POST, consumes = "application/json", produces = "application/json")
public @ResponseBody Map<String, ? extends Object> editContactInfo(@RequestBody @ModelAttribute("contactCommand") ContactCommand cmd, HttpServletRequest request, HttpServletResponse response) throws GeneralException {

// do …
Run Code Online (Sandbox Code Playgroud)

java ajax json controller spring-mvc

6
推荐指数
1
解决办法
7676
查看次数

标签 统计

json ×2

ajax ×1

controller ×1

java ×1

javascript ×1

jquery ×1

serialization ×1

spring-mvc ×1