当前位置: 代码迷 >> Java Web开发 >> 请教后台Dto与前台json是如何自动匹配的
  详细解决方案

请教后台Dto与前台json是如何自动匹配的

热度:165   发布时间:2016-04-13 22:25:30.0
请问后台Dto与前台json是怎么自动匹配的?
请问前台用$.ajax提交的data类型是json,在后台java代码中怎么可用Dto直接取来就能用呢?代码如下:
前台:

$.ajax({
type : "post",
url : "sys/saveHelpInfo.do",
data : {
helpId : helpId,
orderCode : orderCode,
helpName : helpName,
downloadPath : downloadPath,
remark : remark,
downLoadFileName : downLoadFileName,
serverType : serverType,
flags: flags
},
success : function(data) {
if (data.err) {
alert(data.errMsg);
return false;
} else {
alert("保存成功");
goback(1);

}
}
});


后台:

@RequestMapping(value = "saveHelpInfo")
@ResponseBody
public Map<String, Object> saveHelpInfo(SysHelpDto sysHelpDto
) throws Exception {
Map<String, Object> result = new HashMap<String, Object>();
try {
if (null != sysHelpDto.getFlags()
&& !"".equals(sysHelpDto.getFlags())
&& !"1".equals(sysHelpDto.getFlags())) {
helpService.updateHelpDto(sysHelpDto);

                  ...

上面的Java代码中直接就可以用sysHelpDto.getFlags提取数据了,我主要想问的是json与sysHelp是什么原理自动匹配上了,非常感谢!!!
------解决思路----------------------
spring 中 转换
------解决思路----------------------
一般我这样做的:

1.JSP页面js代码:

//添加教学楼信息
function addNewBuilding(form) {
$.post('sch/addBuilding.do', {
"name" : name,
"campusId" : campusId,
"remark" : remark
},function(data) {
//var obj = eval('(' + data + ')');
var obj =  JSON.parse(data);
if (obj.result == 1) {
$.messager.alert("操作提示", "课程教学楼添加成功!", "info");
}
})

}


2.Controller的Java代码:

/**
     * 添加教学楼
     * @param building
     * @return
     */
    @ResponseBody
    @RequestMapping("/addBuilding")
    public String addCoursePlan(Building building){
        JsonObject resultJo = new JsonObject();
        logger.info("-------------------插入一条教学楼信息记录------------------------");
        resultJo.addProperty("result", buildingService.addBuilding(building));
        return resultJo.toString();
    }



        只要你form提交的那些参数和Dto类Building里面定义的属性完全一致,它会自动绑定的。
你是用的时候只要通过building.name的方式即可获取name的值。