我的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)来处理这个问题?
答案 0 :(得分:5)
@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(..)
完全相同。如果未指定任何值,则假定参数的名称为first
,last
)。否则,将从请求中获取值{order_quantity)
。@ResponseBody
表示您需要在类路径中使用Jackson或JAXB,并在xml配置中使用<mvc:annotation-driven>
。它将分别使用JSON或XML呈现结果。 如果要直接将HTML写入响应,则有两种选择:
String
并将HTML作为String
变量HttpServletResponse response
参数,并使用response.getWriter().write(..)
方法写入回复