目的功能:
通过点击按钮修改对象的一个属性;如图,点击“禁用按钮”,修改cooperator对象的status字段。
代码实现(有问题)
JSP
<c:choose>
<c:when test="${account.admin!=null && cooperator.cooperatorStatus==1}">
<a type="button" class="btn btn-default btn-xs" href="<spring:url value="/toggleAdminStatus/${admin.adminId }"/>" >禁用</a>
<button type="button" class="btn btn-primary btn-xs" onclick="updateCooperatorStatus(${cooperator.cooperatorId},0)">
禁用</button>
</c:when>
<c:when test="${account.admin!=null && cooperator.cooperatorStatus==0}">
<button type="button" class="btn btn-primary btn-xs" onclick="updateCooperatorStatus(${cooperator.cooperatorId},1)">
启用</button>
</c:when>
</c:choose>
ajax
function updateCooperatorStatus(cooperatorId , cooperatorStatus){
$.ajax({
url : '/updateCooperatorStatus.json',
data:{ 'cooperatorId':cooperatorId,
"cooperatorStatus":cooperatorStatus
},
method:"post",
cache: false,
dataType:'json',
success : function(data) {
if (data.resultCode == 0) {
document.location.reload();
}
else {
alert(data.resultMessage);
}
},
error : function(data) {
alert("状态修改,请稍后重试");
}
});
}
java.controller
@RequestMapping("/updateCooperatorStatus")
@ResponseBody
public Result<?> updateCooperatorStatus(Cooperator cooperator){
int status = cooperator.getCooperatorStatus();
Cooperator record = this.cooperatorService.getCooperatorById(cooperator.getCooperatorId());
if(record == null)
return new Result<>(AquaticErrorCode.COOPERATOR_NOT_EXIST, "合作客户不存在");
record.setCooperatorStatus(status);
record.setCooperatorModifyTime(new Date());
return this.cooperatorService.updateCooperator(record);
}
运行效果
IDEA.TOMCAT
下运行没问题,使用Chrome调试也没有报错。
Tomcat
报错;
Failed to load resource: the server responded with a status of 404 ()
:8080/updateCooperatorStatus.json?cooperatorId=11&cooperatorStatus=0&_=1522683700418
(‘_=1522683700418’后缀是jquery自动加的,防止缓存)
写在最后
鉴于这个问题比较奇怪,故意记录一下,希望引发读者的思考。欢迎大家讨论。
(目前我改变实现的方式来完成这个功能)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。