在js中取值需要使用<script th:inline="javascript">
<script th:inline="javascript">
//只有加了th:inline才可以在js中取值
var contextPath=[[${#request.getContextPath}]];//用于ajax中的url路径
</script>
1.首先页面根据status的数值显示按钮
<button class="layui-btn layui-btn-sm layui-btn-normal"
th:if="${sysuser.status} == '2'"
th:onclick="|changeStatus(${sysuser.id},'1')|">启用
</button>
<button class="layui-btn layui-btn-sm layui-btn-danger"
th:if="${sysuser.status} == '1'"
th:onclick="|changeStatus(${sysuser.id},'2')|">冻结
//changeStatus点击事件使用ajax异步替换数据
</button>
2.js方法
<script>
function changeStatus(userId,status){
var tips;
if(status == '1'){
tips = '启用';
}else{
tips = '冻结';
}
################changeStatus的参数status是想要变成的状态
layer.confim('确认'+tips + "?",{
btn['必须的','算了吧']//点击后出现的两个按钮
},function(){
//点击后有两个function函数对应两个按钮的事件
$.ajax({
url: contextPath+"/a/user/changeStatus",
date: {"id": userId,"status": status},
method: "post",
success: function(data){
layer.msg(data.message, {icon: 1, time: 1000}, function () {
//自动刷新当前页面
window.location.reload(true);
});
},
#另一个按钮的事件
function(){
layer.msg('取消成功',{
time: 1000,//1s后自动关闭
});
})
)
3.通过ajax跳转相应的controller方法
@ResponseBody
@Requestmapping("/changeStatus")
public ResponseResult changeStatus(SysUser sysuser){
sysUserService.updateById(sysUser);//mybatis中的根据id修改需要传入对象实体
ResponseResult result=null;
if(sysUser.getStatus()==2){
result= new ResponseResult ("200","账户锁定");
} else {
result = new ResponseResult("200", "账户已启动");
}
return result;
}
}