在jfinal中应如何获取前端ajax提交的Json数据?

发布于 2021-12-03 13:55:14 字数 1219 浏览 763 评论 11

@JFinal 你好,想跟你请教个问题:

     前端ajax提交代码:

var lcPostData='{"id":1,"qty":2}'

    var url="gallery/updateCartItem";                  
     $.ajax({
         contentType: "application/json",
     url:url, 
     type:'post',
     data:lcPostData,
     timeout : 20000,
     success:function(data){ 
        if(data.flag==1){  
               //更新前台相关标签值
               $("#totalAMT").html(data.totalAmt); 
                       
                           $thisTD_amount.find("span").html(lnTotal);
     	 }else{	      	     
     	      alert("对不起,操作失败");  
     	 }
     },
     error:function(XMLHttpRequest, textStatus, errorThrown){
           alert("访问后台发生错误:"+XMLHttpRequest.status)
     }
     });



后台处理代码:

public void updateCartItem(){

    String mData=getPara(0);
    System.out.println("从前台传过来的数据是:"+mData);

}



怎么获取不到从前端传过来的Json数据?在jfinal中应如何获取?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

时光清浅 2021-12-05 10:11:49

如果contentType值为"application/json;charset=UTF-8"的话,后台如此取值

BufferedReader reader = request.getReader();
StringBuffer buffer = new StringBuffer();
String string;
while ((string = reader.readLine()) != null) {
			buffer.append(string);
}
reader.close();		
		
System.out.println(buffer.toString());
		
JSONObject paramObject = JSONObject.parseObject(buffer.toString());
String name = paramObject.getString("name");

JFinal中能获取到request就能取到值

平定天下 2021-12-05 10:11:48

用这个试试:

$.ajax({
    type: "POST",
    cache: false,
    dataType:"json",
    url: url,
    data:lcPostData,
    success:...,
    error:....
});

成熟的代价 2021-12-05 10:11:48

引用来自“backtract”的评论

用这个试试:

$.ajax({
    type: "POST",
    cache: false,
    dataType:"json",
    url: url,
    data:lcPostData,
    success:...,
    error:....
});

北笙凉宸 2021-12-05 10:11:47

换字符型,拼接在url后就可以找到参数了,   

      lcPostData="{id:1,qty:2}";

      var url="gallery/updateCartItem/"+lcPostData;

输出:%7Bid:1,qty:2%7D

大括号转码了,为什么不能用json格式提交数据?

拥有 2021-12-05 10:11:44

一楼已经说的很清楚了啊:
{"id":1,"qty":2}
在jfinal中:
String id = getPara("id");
String qty = getPara("qty");
就可以了。

绝情姑娘 2021-12-05 10:11:44

换个其他的内容格式提交试试。

瀞厅☆埖开 2021-12-05 10:11:16

两位能具体说说吗?我还是没看明白,就我这例子,应如何改?thks.

多情癖 2021-12-05 10:10:28

就是跟普通的方法一样,用getPara相关方法就可以获取到,吧参数什么的填写到.ajax中的参数字段中,参数是json的形式,可以看看w3school的相关方法,再说直接用.post多好

南汐寒笙箫 2021-12-05 10:05:47

一楼已经说的很清楚了啊:
{"id":1,"qty":2}
在jfinal中:
String id = getPara("id");
String qty = getPara("qty");
就可以了。

顾挽 2021-12-05 09:02:39

json格式的数据,需要根据key来获取对应的数据——getPara("id")。不仅jfinal如此,servlet也是如此

时光清浅 2021-12-05 06:39:54

终于找到原因了,不能设置contentType: "application/json", 去掉这行代码后台就可以获得参数wf值了,希望后来者少走弯路。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文