java - 如何在 Spring MVC (3.0) 应用程序中处理 Ajax.Request 调用?

标签 java javascript ajax spring spring-mvc

我的 JavaScript 中有以下调用:

new Ajax.Request('/orders/check_first_last/A15Z2W2', 
{asynchronous:true, evalScripts:true, 
parameters:{first:$('input_initial').value, 
last:$('input_final').value, 
order_quantity:$('input_quantity').value}});

我需要做什么才能让 Spring MVC (3.0) 处理这个问题?

最佳答案

@Controller
@RequestMapping("/orders")
public OrderController {

   @RequestMapping("/check_first_last/{code}")
   @ResponseBody
   public Result checkFirstLast(@PathVariable String code, 
        @RequestParam int first, 
        @RequestParam int last, 
        @RequestParam("order_quantity") int orderQuantity)  {

       // fetch the result
       Result result = fetchResult(...);
       return result;
  }
}

一些注意事项:

  • @PathVariable获取用 {..} 定义的变量在请求映射中
  • @RequestParam相当于request.getParameter(..) 。如果未指定值,则假定为参数名称( firstlast )。否则,从请求中获取值 (order_quantity)
  • @ResponseBody意味着您需要 Jackson 或 JAXB 出现在类路径上,并且 <mvc:annotation-driven>在 xml 配置中。它将分别使用 JSON 或 XML 呈现结果。

如果您想直接将 HTML 写入响应,您有两种选择:

  • 将返回类型更改为 String并将 HTML 返回为 String变量
  • 添加 HttpServletResponse response该方法的参数并使用 response.getWriter().write(..)写入响应的方法
<小时/>

资源:Spring MVC documentation

关于java - 如何在 Spring MVC (3.0) 应用程序中处理 Ajax.Request 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3643203/

相关文章:

java - 如何读取正在由另一个编写器线程写入的实时文件

java - 如何在Java中基于节点枚举对象?

javascript - 服务器无响应时如何处理ajax调用

javascript - 随着时间的推移,Ajax 繁重的 JS 应用程序使用过多的内存

java - 我想在单击按钮时更新表格

java - 没有封闭实例的分配引发了异常

javascript - 点击弹出不工作

javascript - ASP 使用 CDOSYS 和 AJAX 发送电子邮件

javascript - 隐藏与 css vs JS 创建元素 vs ajax

javascript - 使用 ajax 在 codeigniter 中使用单个输入上传多个图像时出现问题