利用cxf发布了restful的服务,接收post请求
@POST
@Path("/reveivePayInfo")
public void reveivePayInfo(@Context HttpServletRequest request,
@Context HttpServletResponse response) {
request.getParameter("memberID");
当我利用jquery来异步请求这个post时,传递的参数memberID却取不到,而当我利用springmvc时Controller层就可以直接取到,不知道其中的原理啊,导致不知道为何取不到,后期知道的原因补上吧,也希望有了解的可以告知一二啊。
jquery代码,其中的queryForm中包含memberID参数,提交的post请求使用浏览器的F12可以查看到可以看到请求的包体中的参数memberID以及其值。
// 查询表单提交
$.post(queryUrl, queryForm.serialize(), function(data) {
});
Controller获取的代码
@RequestMapping(value = "/member_list_query")
public ModelAndView memberListQuery(HttpServletRequest request, ModelMap modelMap) {
request.getParameter("memberID");
modelMap.put("memberList", getMember());
return new ModelAndView("/module/crm/crm_member_list_table");
}
最后断点看到,是rest的中的request与普通的springmvc中有区别(我用的tomcat,所以是tomcat中的实现),他们构造requset的方式不一样,rest中没有将post中的参数封装至request中,所以换了一种方式来获取post提交的参数
@POST
@Path("/receivePayInfo")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public void reveivePayInfo(@Context HttpServletRequest request,
@Context HttpServletResponse response,
@BeanParam PayInfoAtom payInfoAtom) {
采用BeanParam这种形式来接收表单。
public class PayInfoAtom {
/**
* 支付订单号
*/
@FormParam("orderId")
private String orderId;
bean中采用FormParam的注解来对应表单提交的信息。