jfinal前台ajax发送json数据,controller实体接收的问题

数据库表字段都是大写的,用以下两种方法并未获取到值,是否有遇到同样问题的?或者在保存的时候不用表单提交,用ajax提交 controller中能用实体接收到最好,有没有更好的解决方案?几十个字段总不能一个一个get....

getModel(MyModel.class, "");
getBean(MyBean.class, "");

前台代码

var USER_IMG = $('#user_img').attr("src");
    var TRUE_NAME = $('#TRUE_NAME').val();
    var SEX = $('#SEX').val();
    var BIRTHDAY = $('#BIRTHDAY').val();
    var EMAIL = $('#EMAIL').val();
    var PHONE = $('#PHONE').val();
    var ADDRES = $('#ADDRES').val();
    
    var obj = new Object();
    obj.USER_NAME = USER_NAME;
    obj.PASSWORD = PASSWORD;
    obj.USER_IMG = USER_IMG;
    obj.TRUE_NAME = TRUE_NAME;
    obj.SEX = SEX;
    obj.BIRTHDAY = BIRTHDAY;
    obj.EMAIL = EMAIL;
    obj.PHONE = PHONE;
    obj.ADDRES = ADDRES;
    
    $.ajax({
    url : '../user/save',
    data : JSON.stringify(obj),
    type : 'POST',
    dataType : 'json',
    success : function(data) {
    if (data) {
    } else {
    }
    }
    });


评论区

JFinal

2017-03-06 23:31

控制台输出的 jfinal action report 中的 parameter 这部分是什么? 先看一下参数的格式再决定如何走下一步

caoxusheng

2017-03-09 14:08

public String readRequstJson(HttpServletRequest request) {
StringBuffer json = new StringBuffer();
String line = null;
try {
BufferedReader reader = request.getReader();
while ((line = reader.readLine()) != null) {
json.append(line);
}

} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage(), e);
}
return json.toString();
}

String jsonStr = readRequstJson(getRequest());
JSONObject obj = JSONObject.parseObject(jsonStr);
obj.get("key");
Controller这样取值就好了。obj.get(key)

JFinal

2017-03-09 14:47

@caoxusheng 不太相信前端传过来的数据是 jsonString,通常仍然是很多的 key=value 结构型数据,所以前面在说,先确定控制台的 jfinal action report 输出是啥

即便是 jsonString,在 jfinal 中也可这样来做:
String jsonString = HttpKit.readData(getRequest());
Xxx xxx = FastJson.getJson().parse(jsonString, Xxx.class);

westgo

2017-03-09 16:44

prelove

2017-12-22 10:05

这个解析前台传来的json对象解析和获取JFinal确实可以考虑加上,现在前端框架很多都已经是直接传json字符串而不是form表单数据了,尤其是移动端来的数据,基本都是结构化了的json。我们现在采用restful风格的url基本前后端互传都是json了

lemuel

2018-03-20 15:45

Parameter : {"name":"Fred","account":"admin","password":"12345","telephone":"1234883","remark":"备注"}= 我的数据格式是这样,后台用User user = getBean(User.class, ""); 获取不到值 @JFinal

钮飞虎

2018-05-26 10:11

亲测可用:
String jsonString = getPara("Parameter");
XxBean xx = Jackson.getJson().parse(jsonString, XxBean.class);

pangyu1221

2018-08-21 18:29

@JFinal 我的类似的情况 post方式传递ajax 控制台显示parameter 是我的一堆参数 然后后面有个= 等号 意思是key是我的参数 但是value是空的 该怎么解决啊

热门分享

扫码入社