在数据库中有Person表,表结构如下所示:
在Person表中添加4条数据。
运行若依项目,在浏览器打开后,点击系统工具
–> 代码生成
,导入
我们刚刚创建的Person表,编辑完成后点击生成代码
。
代码生成后导入项目中,重构项目后运行,此时我们发现Person表的数据不能正常显示。
找到 Person表所生成的 PersonController.java
@Api("Person信息管理")
@ApiOperation("获取Person列表")
系统工具
–> 系统接口
–> person-controller
–> POST
–> try it out
–> Execute
Response body
部分,后端传给前端的字段首字母全为小写{
"total": 5,
"rows": [
{
"createBy": null,
"createTime": null,
"updateBy": null,
"updateTime": null,
"remark": null,
"address": "私闯",
"personID": 1,
"lastName": "lin",
"firstName": "rui",
"city": "四川"
},
···
{
"createBy": null,
"createTime": null,
"updateBy": null,
"updateTime": null,
"remark": null,
"address": "陕西",
"personID": 10,
"lastName": "test1",
"firstName": "kaifamiao",
"city": "西安"
}
],
"code": 0,
"msg": null
}
也就是说后端传给前端的json字段和前端字段不匹配,所以出现此问题。
若依框架json解析
使用fastjson
,fastjson
默认首字母小写。
编辑
和删除
的row.PersonID
改为row.personID
var editFlag = [[{@permission.hasPermi('test:Person:edit')}]];
var removeFlag = [[{@permission.hasPermi('test:Person:remove')}]];
var prefix = ctx + "test/Person";
(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "Person",
columns: [{
checkbox: true
},
{
field: 'personID',
title: 'PersonID',
visible: false
},
{
field: 'lastName',
title: 'LastName'
},
{
field: 'firstName',
title: 'FirstName'
},
{
field: 'address',
title: 'Address'
},
{
field: 'city',
title: 'City'
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick=".operate.edit(\'' + row.personID + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick=".operate.remove(\'' + row.personID + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]
};.table.init(options);
});
将页面所有的th:field="*{···}
括号里面的首字母变成小写
<form class="form-horizontal m" id="form-Person-edit" th:object="${person}">
<input name="PersonID" th:field="*{personID}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">LastName:</label>
<div class="col-sm-8">
<input name="LastName" th:field="*{lastName}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">FirstName:</label>
<div class="col-sm-8">
<input name="FirstName" th:field="*{firstName}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">Address:</label>
<div class="col-sm-8">
<input name="Address" th:field="*{address}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">City:</label>
<div class="col-sm-8">
<input name="City" th:field="*{city}" class="form-control" type="text">
</div>
</div>
</form>
修改完成后重构若依项目,然后运行,我们可以发现,Person表的数据已经显示在页面上。
经过测试,增删改功能都OK。
同样,可以修改后端代码使得后端传输的json即为我们所需要的。
给实体类Person.java 的所有属性添加 @JsonProperty 注解
@JsonProperty注解主要用于实体类的属性上,作用可以简单的理解为在反序列化的时候给属性重命名(多一个名字来识别)
/** PersonID */
@JsonProperty("PersonID")
private Long PersonID;
/** LastName */
@Excel(name = "LastName")
@JsonProperty("LastName")
private String LastName;
/** FirstName */
@Excel(name = "FirstName")
@JsonProperty("FirstName")
private String FirstName;
/** Address */
@Excel(name = "Address")
@JsonProperty("Address")
private String Address;
/** City */
@Excel(name = "City")
@JsonProperty("City")
private String City;
添加完成后重构若依项目,然后运行,我们可以发现,Person表的数据已经显示在页面上。
经过测试,增删改功能都OK。
powered by kaifamiao