/*** 导入jackson包 把对象转换成JSON字符串 第二稿 支持移动设备* @param pn* @param request* @return*/@RequestMapping(value = "/admin/users", headers = {"Accept=application/json"})@ResponseBodypublic Msg getUsersWithJson(@RequestBody PageInfoDTO pageInfoDTO, HttpServletRequest request) {try {Integer pn = 1;if(pageInfoDTO==null) {pn = 1;}else if(pageInfoDTO!=null && pageInfoDTO.getPn()!=null) {pn = pageInfoDTO.getPn();}// 引入PageHelper分页插件// 查询前调用,传入页码也记录数 pageNum, pageSizePageHelper.startPage(pn, 5);// startPage紧跟着的这个查询就是一个分页查询HttpSession session = request.getSession();UserAccount currentUser = (UserAccount) session.getAttribute("currentUser");Integer userType = currentUser.getUserType();Integer userId = currentUser.getUserId();List<UserAccount> users = new ArrayList<UserAccount>();// 如果是admin账户则需要查询所有的账户       if(userType==0) {     users = loginService.getAllUsers();}else {// 如果是普通管理员账户就只需要查询子账户的信息// (自己的账户只能是admin账户才可以管理)// 通过userId查询子账号的的所有用户users = loginService.getAllChildrenUsersByUserId(userId);}// PageInfo包装查询结果,封装了详细的分页信息和详细数据// 连续显示5页PageInfo<UserAccount> pageInfo = new PageInfo<UserAccount>(users, 5);return Msg.success().add("pageInfo", pageInfo);} catch (Exception e) {e.printStackTrace();return Msg.fail();}}
    /*** 校验用户名是否被占用* @param userAccount* @param request* @return*/@RequestMapping(value = "/admin/checkuser", headers = {"Accept=application/json"})@ResponseBodypublic Msg adminCheckuser(@RequestBody UserAccount userAccount) {try {if(userAccount!=null && userAccount.getUserName()!=null) {String userName = userAccount.getUserName();// 判断用户名是否符合正则表达式String regex = "(^[A-Za-z0-9]{4,15}$)";if (!userName.matches(regex)) {// System.out.println(empName.matches(regex));return Msg.fail().add("va_msg","username need contain 4-15 letter or number");}             if (loginService.checkuser(userName)) {return Msg.success();} else {return Msg.fail().add("va_msg", "The username is not available");}}else {return Msg.fail().add("va_msg","The username cannot be empty!");}} catch (Exception e) {e.printStackTrace();return Msg.fail().add("va_msg", "Access exception!");}}
    @RequestMapping(value = "/admin/saveUser", headers = {"Accept=application/json"})@ResponseBodypublic Msg adminSaveUser(
@RequestBody UserAccount userAccount, HttpServletRequest request) {try {if(userAccount!=null) {String userName = userAccount.getUserName();// 判断用户名是否符合正则表达式String regexName = "(^[A-Za-z0-9]{4,15}$)";if (!userName.matches(regexName)) {return Msg.fail()
.add("saveUser_msg", "username need contain 4-15 letter or number");}   Boolean flag = loginService.checkuser(userName);if (!flag) {return Msg.fail()
.add("saveUser_msg", "The username is not available");}// 验证密码String password = userAccount.getUserPassword();// 判断用户名是否符合正则表达式String regexPassword = "(^[A-Za-z0-9]{29,32}$)";System.out.println(password.matches(regexPassword));if (!password.matches(regexPassword)) {return Msg.fail()
.add("saveUser_msg", "password need contain 4-15 letter or number");}   // 验证邮箱String email = userAccount.getUserMailAddress();// 判断用户名是否符合正则表达式String regexEmail
= "(^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$)";if (!email.matches(regexEmail)) {return Msg.fail()
.add("saveUser_msg", "The email format is invalid");}// 验证手机号String phoneNumber = userAccount.getUserPhoneNumber();// 判断用户名是否符合正则表达式String regexPhoneNumber = "(^[0-9]{5,15}$)";if (!phoneNumber.matches(regexPhoneNumber)) {return Msg.fail()
.add("saveUser_msg", "Phone number must be have 5-15 numbers");}Map<String, Object> userMap = getCurrentUserInfo(request);// 获取当前请求用户的userIdInteger userId = (Integer) userMap.get("userId");if(userId==null) {return Msg.fail()
.add("saveUser_msg", "UserId value is invalid!");}userAccount.setParentId(userId);Integer parentType = (Integer) userMap.get("userType");Integer userType = 2;if(parentType==0) {userType = 1;}userAccount.setUserType(userType);// 保存记录到用户表Boolean saveFlag = loginService.addUser(userAccount);if(saveFlag) {return Msg.success();}else {return Msg.fail().add("saveUser_msg", "Save failed!");}}else {return Msg.fail().add("saveUser_msg", "The Data cannot be empty!");        }} catch (Exception e) {e.printStackTrace();return Msg.fail().add("saveUser_msg", "Access exception!");}}/*** 通过request对象获取当前用户的信息* @param request* @return*/public Map<String,Object> getCurrentUserInfo(HttpServletRequest request) {try {Map<String,Object> map = new HashMap<String,Object>();HttpSession session = request.getSession();UserAccount currentUser =
(UserAccount) session.getAttribute("currentUser");Integer userType = currentUser.getUserType();Integer userId = currentUser.getUserId();map.put("userType", userType);map.put("userId", userId);return map;} catch (Exception e) {e.printStackTrace();return null;}}
 // 查询用户信息信息@RequestMapping(value = "/admin/getUser", headers = {"Accept=application/json"})@ResponseBodypublic Msg adminGetUser(
@RequestBody UserAccount userAccount, HttpServletRequest request) {try {if(userAccount!=null && userAccount.getUserId()!=null) {Integer userId = userAccount.getUserId();// 通过userId获取用户信息UserAccount user = loginService.getUser(userId);return Msg.success().add("user", user);}else {return Msg.fail()
.add("getUser_msg", "The userId cannot be empty!");     }} catch (Exception e) {e.printStackTrace();return Msg.fail().add("getUser_msg", "Access exception!");}}
    @RequestMapping(value = "/admin/updateUser", headers = {"Accept=application/json"})@ResponseBodypublic Msg adminUpdateUser(
@RequestBody UserAccount userAccount, HttpServletRequest request) {try {if(userAccount!=null && userAccount.getUserId()!=null && userAccount.getUserPassword()!=null && userAccount.getUserMailAddress()!=null&& userAccount.getUserPhoneNumber()!=null) {// 通过userId更新用户信息Boolean flag = loginService.updateUserByUserId(userAccount);if(flag){                 return Msg.success();}else {return Msg.fail().add("updateUser_msg", "Update failed!");}}else {return Msg.fail()
.add("updateUser_msg", "The data cannot be empty!");    }} catch (Exception e) {e.printStackTrace();return Msg.fail().add("updateUser_msg", "Access exception!");}}
 /*** 批量删除用户信息:1-2-3 单个:1* @param userAccount* @param request* @return*/@RequestMapping(value = "/admin/deleteUserById", headers = {"Accept=application/json"})@ResponseBodypublic Msg deleteUserById(
@RequestBody UserAccount userAccount, HttpServletRequest request) {try {if(userAccount!=null && userAccount.getIds()!=null) {String ids = userAccount.getIds();if (ids.contains("-")) {String[] strIds = ids.split("-");List<Integer> idList = new ArrayList<Integer>();for (String str : strIds) {idList.add(Integer.parseInt(str));}// 批量删除用户信息Boolean flag = loginService
.deleteBatchUser(idList);if(flag){                  return Msg.success()
.add("deleteUser_msg", "Delete Success!");}else {return Msg.fail()
.add("deleteUser_msg", "Delete failed!");}} else {// 通过userId删除当前用户Boolean flag = loginService
.deleteUserById(Integer.parseInt(ids));if(flag){                    return Msg.success()
.add("deleteUser_msg", "Delete Success!");}else {return Msg.fail()
.add("deleteUser_msg", "Delete failed!");}}}else {return Msg.fail()
.add("deleteUser_msg", "The data cannot be empty!");}} catch (Exception e) {e.printStackTrace();return Msg.fail().add("deleteUser_msg", "Access exception!");}}
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ page trimDirectiveWhitespaces="true"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="itheima" uri="http://itcast.cn/common/"%>
<%String path = request.getContextPath();String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()+ path + "/";
%>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="utf-8"><title>User Information Management Menu</title><link rel="stylesheet" href="${pageContext.request.contextPath}/static/assets/vendors/bootstrap/css/bootstrap.css"><link rel="stylesheet" href="${pageContext.request.contextPath}/static/assets/vendors/font-awesome/css/font-awesome.css"><link rel="stylesheet" href="${pageContext.request.contextPath}/static/assets/css/admin.css"><script src="${pageContext.request.contextPath}/static/assets/vendors/nprogress/nprogress.js"></script><script src="${pageContext.request.contextPath}/static/assets/vendors/jquery/jquery.js"></script><script src="${pageContext.request.contextPath}/static/assets/vendors/bootstrap/js/bootstrap.js"></script><script type="text/javascript" src="${pageContext.request.contextPath }/js/bootbox.all.min.js"></script><script type="text/javascript" src="${pageContext.request.contextPath }/js/md5.js"></script><style type="text/css">#title_info {color: #0496A4;text-align: center;font-size: 29px;}.main {background-image: url(${pageContext.request.contextPath}/img/BG1.jpg);}</style><script>$(function(){var totalRecord;var currentPagem;//页面加载完成后,发送ajax请求,获取分页数据$(function() {to_page(1);});function to_page(pn) {var jsonParams = {"pn":pn};// console.log(jsonParams);$.ajax({url : "${pageContext.request.contextPath}/admin/users.action",type : "POST",dataType : "json",contentType : "application/json",data : JSON.stringify(jsonParams),success : function(result) {//console.log(result);// 1. 解析JSON 显示用户数据build_users_table(result);// 2.1 显示分页信息build_page_info(result);// 2.2  显示分页条build_page_nav(result);}});}function build_users_table(result) {var users = result.extend.pageInfo.list;//清空table表格$("#users_table tbody").empty();$.each(users, function(index, item) {//alert(item.empName);var checkBoxTd = $("<td><input type='checkbox' class='check_item'></input></td>").addClass("text-center");var userIdTd = $("<td></td>").append(item.userId).addClass("text-center");var userNameTd = $("<td></td>").append(item.userName).addClass("text-center");var emailTd = $("<td></td>").append(item.userMailAddress).addClass("text-center");var phoneNumberTd = $("<td></td>").append(item.userPhoneNumber).addClass("text-center");var userType = item.userType;if(userType==0){userType = 'Administrator';}else if(userType==1){userType = 'Normal Manager';}else if(userType==2){userType = 'Normal User';}var userTypeTd = $("<td></td>").append(userType).addClass("text-center");var editbtn = $("<button></button>").addClass("btn btn-info btn-xs edit_btn").append("Edit");// console.log("item.userId",item.userId);editbtn.attr("edit-id", item.userId);// console.log("editbtn",editbtn.attr("edit-id"));var delbtn = $("<button></button>").addClass("btn btn-danger btn-xs delete_btn").append("Delete");// console.log("item.userId",item.userId);delbtn.attr("delete-id", item.userId);// console.log("delbtn",delbtn.attr("delete-id"));var btntd = $("<td></td>").append(editbtn).append(" ").append(delbtn).addClass("text-center");$("<tr></tr>").append(checkBoxTd).append(userIdTd).append(userNameTd).append(emailTd).append(phoneNumberTd).append(userTypeTd).append(btntd).appendTo("#users_table tbody");});}//分页信息function build_page_info(result) {totalRecord = result.extend.pageInfo.total;currentPage = result.extend.pageInfo.pageNum;}//分页条function build_page_nav(result) {//page_nav_area$("#page_nav_area").empty();var ul = $("<ul></ul>").addClass("pagination pagination-sm pull-right");var firstPageLi = $("<li></li>").append($("<a></a>").append("First").attr("href", "#"));var prePageLi = $("<li></li>").append($("<a></a>").append("Previous").attr("href", "#"));if (result.extend.pageInfo.hasPreviousPage == false) {firstPageLi.addClass("disabled");prePageLi.addClass("disabled");} else {//添加翻页事件firstPageLi.click(function() {to_page(1);});prePageLi.click(function() {// console.log("result.extend.pageInfo.pageNum - 1",result.extend.pageInfo.pageNum - 1);to_page(result.extend.pageInfo.pageNum - 1);});}var nextPageLi = $("<li></li>").append($("<a></a>").append("Next").attr("href", "#"));var lastPageLi = $("<li></li>").append($("<a></a>").append("Last").attr("href", "#"));if (result.extend.pageInfo.hasNextPage == false) {nextPageLi.addClass("disabled");lastPageLi.addClass("disabled");} else {//添加翻页事件lastPageLi.click(function() {// console.log("result.extend.pageInfo.pages",result.extend.pageInfo.pages);to_page(result.extend.pageInfo.pages);});nextPageLi.click(function() {// console.log("result.extend.pageInfo.pageNum + 1",result.extend.pageInfo.pageNum + 1);to_page(result.extend.pageInfo.pageNum + 1);});}ul.append(firstPageLi).append(prePageLi);var navNum = result.extend.pageInfo.navigatepageNums;$.each(navNum, function(index, item) {var pageLi = $("<li></li>").append($("<a></a>").append(item).attr("href", "#"));if (result.extend.pageInfo.pageNum == item) {pageLi.addClass("active");}//绑定单击事件pageLi.click(function() {// console.log("item",item);to_page(item);})ul.append(pageLi);});ul.append(nextPageLi).append(lastPageLi);$("#page_nav_area").append(ul);         }// 新增用户按钮$("#user_add_modal_btn").click(function() {//清除表单数据和样式reset_form("#userAddModal form")//发送ajax请求,查出部门信息,显示在下拉列表中//getDepts("#dept_add_area");//弹出新增模态框$("#userAddModal").modal({backdrop : "static"});});function reset_form(ele) {$(ele)[0].reset();$(ele).find("*").removeClass("has-error has-success");$(ele).find(".help-block").text("");}// 用户姓名输入框的校验$("#userName_add_input").mouseleave(function() {//发送ajax校验用户名是否可用var userName = $("#userName_add_input").val();var jsonParams = {"userName":userName};// console.log(jsonParams);//alert(empName);$.ajax({url : "${pageContext.request.contextPath}/admin/checkuser.action",type : "POST",dataType : "json",contentType : "application/json",data : JSON.stringify(jsonParams),success : function(result) {if (result.code == 100) {show_validate_msg("#userName_add_input","success", "This username is available");$("#user_save_btn").attr("ajax-va", "success");} else {show_validate_msg("#userName_add_input","error", result.extend.va_msg);$("#user_save_btn").attr("ajax-va", "error");}}});});//正则校验,代码抽取function show_validate_msg(ele, status, msg) {$(ele).parent().removeClass("has-success has-error");$(ele).next("span").text("");if ("success" == status) {$(ele).parent().addClass("has-success");$(ele).next("span").text("");} else if ("error" == status) {$(ele).parent().addClass("has-error");$(ele).next("span").text(msg);}}//保存新增员工信息$("#user_save_btn").click(function() {if ($("#user_save_btn").attr("ajax-va") == "error") {// console.log(11);return false;} else if (!validate_add_form()) {// console.log(22);return false;} else {// console.log(55);var userName = $("#userName_add_input").val();var password = $("#password_add_input").val();var email = $("#email_add_input").val();var phoneNumber = $("#phoneNumber_add_input").val();var jsonParams = {"userName":userName,"userPassword":hex_md5(password),"userMailAddress":email,"userPhoneNumber":phoneNumber};//模态框中填写的表单数据提交给服务器进行保存$.ajax({url : "${pageContext.request.contextPath}/admin/saveUser.action",type : "POST",dataType : "json",contentType : "application/json",data : JSON.stringify(jsonParams),success : function(result) {if (result.code == 100) {//保存成功console.log("result.code",result.code);//关闭模态框$("#userAddModal").modal("hide");//到最后一页,发送ajax请求即可to_page(totalRecord);} else {if (result.extend.saveUser_msg != undefined) {//显示邮箱错误信息show_validate_msg("#phoneNumber_add_input","error",result.extend.saveUser_msg);} } }});}});//校验表单数据//名字//邮箱function validate_add_form() {//验证用户名var userName = $("#userName_add_input").val();// console.log("userName",userName);var regName = /(^[A-Za-z0-9]{4,15}$)/;// console.log("regName.test(userName)",regName.test(userName));if (!regName.test(userName)) {//alert("名字必须是6-16位英文数字组合");show_validate_msg("#userName_add_input", "error","username need contain 4-15 letter or number");return false;} else {show_validate_msg("#userName_add_input", "success", "");}// 验证密码var password = $("#password_add_input").val();// console.log("password",password);var regPassword = /(^[A-Za-z0-9]{4,15}$)/;// console.log("!regPassword.test(password)",!regPassword.test(password));if (!regPassword.test(password)) {//alert("名字必须是4-15位英文数字组合");show_validate_msg("#password_add_input", "error","password need contain 4-15 letter or number");return false;} else {show_validate_msg("#password_add_input", "success", "");}// 验证确认密码var confirmPassword = $("#confirmPassword_add_input").val();// console.log("confirmPassword",confirmPassword);// console.log("password!=confirmPassword",password!=confirmPassword);if (password!=confirmPassword) {show_validate_msg("#confirmPassword_add_input", "error","The two passwords you typed do not match");return false;} else {show_validate_msg("#confirmPassword_add_input", "success", "");}//校验邮箱var email = $("#email_add_input").val();// console.log(email);var regEmail = /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/;// console.log(regEmail.test(email));if (!regEmail.test(email)) {show_validate_msg("#email_add_input", "error", "The email format is invalid");return false;} else {show_validate_msg("#email_add_input", "success", "");}// 验证手机号var phoneNumber = $("#phoneNumber_add_input").val();// console.log("phoneNumber",phoneNumber);var regPhoneNumber = /(^[0-9]{5,15}$)/;// console.log("regPhoneNumber.test(phoneNumber)",regPhoneNumber.test(phoneNumber));if (!regPhoneNumber.test(phoneNumber)) {show_validate_msg("#phoneNumber_add_input", "error","Phone number must be have 5-15 numbers");return false;} else {show_validate_msg("#phoneNumber_add_input", "success", "");}return true;}//新版本jquery使用$(document).on("click", ".edit_btn", function() {// 根据userId查出当前用户信息getUser($(this).attr("edit-id"));//弹出框,把员工ID传递给更新按钮// console.log(11,$(this).attr("edit-id"));         $("#user_update_btn").attr("edit-id", $(this).attr("edit-id"));           // console.log(22,$("#user_update_btn").attr("edit-id"));$("#userUpdateModal").modal({backdrop : "static"});});     function getUser(userId) {var jsonParams = {"userId":userId};$.ajax({url : "${pageContext.request.contextPath}/admin/getUser.action",type : "POST",dataType : "json",contentType : "application/json",data : JSON.stringify(jsonParams),success : function(result) {var user = result.extend.user;$("#userName_update_static").text(user.userName);$("#email_update_input").val(user.userMailAddress);$("#phoneNumber_update_input").val(user.userPhoneNumber);}})}// 点击更新用户信息$("#user_update_btn").click(function() {// 验证密码var password = $("#password_update_input").val();// console.log("password",password);var regPassword = /(^[A-Za-z0-9]{4,15}$)/;// console.log("!regPassword.test(password)",!regPassword.test(password));if (!regPassword.test(password)) {//alert("名字必须是4-15位英文数字组合");show_validate_msg("#password_update_input", "error","password need contain 4-15 letter or number");return false;} else {show_validate_msg("#password_update_input", "success", "");}// 验证确认密码var confirmPassword = $("#confirmPassword_update_input").val();// console.log("confirmPassword",confirmPassword);// console.log("password!=confirmPassword",password!=confirmPassword);if (password!=confirmPassword) {show_validate_msg("#confirmPassword_update_input", "error","The two passwords you typed do not match");return false;} else {show_validate_msg("#confirmPassword_update_input", "success", "");}//校验邮箱var email = $("#email_update_input").val();// console.log("email",email);var regEmail = /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/;// console.log("regEmail.test(email)",regEmail.test(email));if (!regEmail.test(email)) {show_validate_msg("#email_update_input", "error", "The email format is invalid");return false;} else {show_validate_msg("#email_update_input", "success", "");}// 验证手机号var phoneNumber = $("#phoneNumber_update_input").val();// console.log("phoneNumber",phoneNumber);var regPhoneNumber = /(^[0-9]{5,15}$)/;// console.log("regPhoneNumber.test(phoneNumber)",regPhoneNumber.test(phoneNumber));if (!regPhoneNumber.test(phoneNumber)) {show_validate_msg("#phoneNumber_update_input", "error","Phone number must be have 5-15 numbers");return false;} else {show_validate_msg("#phoneNumber_update_input", "success", "");}var userId = $("#user_update_btn").attr("edit-id");console.log("userId",userId);var jsonParams = {"userId":userId,"userPassword":hex_md5(password),"userMailAddress":email,"userPhoneNumber":phoneNumber              };$.ajax({url : "${pageContext.request.contextPath}/admin/updateUser.action",type : "PUT",dataType : "json",contentType : "application/json",data : JSON.stringify(jsonParams),success : function(result) {if (result.code == 100) {//保存成功//alert(result.msg);//关闭模态框$("#userUpdateModal").modal("hide");//alert(result.msg);//回到本页面to_page(currentPage);} else {var message = result.extend.updateUser_msg;show_validate_msg("#phoneNumber_update_input", "error",message);}}});});//单个删除$(document).on("click", ".delete_btn", function() {var currentDeleteBtn = $(this);//弹出是否删除对话框var delName = $(this).parents("tr").find("td:eq(2)").text();//alert(delName);bootbox.confirm({ size: "small",message: "<b>Are you sure to</b> <b style='color:d9534f'>delete</b> <b>"+delName+"?</b>", callback: function(result){if(result){var userId = currentDeleteBtn.attr("delete-id");console.log("userId",userId);                          var jsonParams = {"ids":userId};// console.log(jsonParams);//确定,发送删除请求$.ajax({url:"${pageContext.request.contextPath}/admin/deleteUserById.action",type:"DELETE",dataType:"json",contentType:"application/json",data : JSON.stringify(jsonParams),success:function(result){var message = result.extend.deleteUser_msg;if (result.code == 100) {// alert(result.msg);bootbox.alert({ size: "small",title: "Message",message: "<b style='color:#0496A4'>"+message+"</b>"});to_page(currentPage);}else{bootbox.alert({ size: "small",title: "Message",message: "<b style='color:#d9534f'>"+message+"</b>"});}}});}}});          });//批量删除//全选功能     $("#check-all").click(function(){//使用prop修改和读取dom原生属性,不使用attr//alert($(this).prop("checked"));$(".check_item").prop("checked",$(this).prop("checked"));});//单选点满,全选按钮也要勾上$(document).on("click",".check_item",function(){//判断是否全部勾选var flag = $(".check_item:checked").length==$(".check_item").length;$("#check-all").prop("checked",flag);});//点击删除选中的用户$("#user_delete_selected_btn").click(function(){var userNames = "";var del_idstr = "";$.each($(".check_item:checked"),function(index,item){userNames += $(this).parents("tr").find("td:eq(2)").text() + ",";del_idstr += $(this).parents("tr").find("td:eq(1)").text() + "-";});userNames = userNames.substring(0,userNames.length-1);// console.log("userNames",userNames);del_idstr = del_idstr.substring(0,del_idstr.length-1);// console.log("del_idstr",del_idstr);bootbox.confirm({ size: "small",message: "<b>Are you sure to</b> <b style='color:#d9534f'>delete "+userNames+"?</b>", callback: function(result){if(result){var jsonParams = {"ids":del_idstr};// console.log(jsonParams);//确定,发送删除请求$.ajax({url:"${pageContext.request.contextPath}/admin/deleteUserById.action",type:"DELETE",dataType:"json",contentType:"application/json",data : JSON.stringify(jsonParams),success:function(result){var message = result.extend.deleteUser_msg;if (result.code == 100) {bootbox.alert({ size: "small",title: "Message",message: "<b style='color:#0496A4'>"+message+"</b>"});to_page(currentPage);}else{bootbox.alert({ size: "small",title: "Message",message: "<b style='color:#d9534f'>"+message+"</b>"});}}});}}});  });});</script>
</head>
<body><!-- <script>NProgress.start()</script> --><div class="main"><c:import url="navbar.jsp"></c:import><!-- 新增用户的模态框 --><!-- Modal --><div class="modal fade" id="userAddModal" tabindex="-1" role="dialog"aria-labelledby="myModalLabel"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal"aria-label="Close"><span aria-hidden="true">&times;</span></button><h4 class="modal-title" id="myModalLabel">Add User</h4></div><div class="modal-body"><form class="form-horizontal"><div class="form-group"><label for="inputUserName" class="col-sm-4 control-label">UserName</label><div class="col-sm-6"><input type="text" class="form-control" id="userName_add_input"name="userName" placeholder="please input username"> <spanclass="help-block"></span></div></div><div class="form-group"><label for="inputPassword" class="col-sm-4 control-label">Password</label><div class="col-sm-6"><input type="password" class="form-control" id="password_add_input"name="password" placeholder="please input password"> <spanclass="help-block"></span></div></div><div class="form-group"><label for="inputconfirmPassword" class="col-sm-4 control-label">Confirm Password</label><div class="col-sm-6"><input type="password" class="form-control" id="confirmPassword_add_input"name="confirmPassword" placeholder="please input confirm password"> <spanclass="help-block"></span></div></div><div class="form-group"><label for="inputEmailName" class="col-sm-4 control-label">Email</label><div class="col-sm-6"><input type="text" class="form-control" id="email_add_input"name="email" placeholder="please input email"> <spanclass="help-block"></span></div></div><div class="form-group"><label for="inputPhoneNumber" class="col-sm-4 control-label">Phone Number</label><div class="col-sm-6"><input type="text" class="form-control" id="phoneNumber_add_input"name="phomeNumber" placeholder="please input phone number"> <spanclass="help-block"></span></div></div></form></div><div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button><button type="button" class="btn btn-primary" id="user_save_btn">Save</button></div></div></div></div><!-- 员工修改的模态框 --><!-- Modal --><div class="modal fade" id="userUpdateModal" tabindex="-1" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal"aria-label="Close"><span aria-hidden="true">&times;</span></button><h4 class="modal-title" >Modify User Information</h4></div><div class="modal-body"><form class="form-horizontal"><div class="form-group"><label for="userName_update_static" class="col-sm-4 control-label">UserName</label><div class="col-sm-6"><p class="form-control-static" id="userName_update_static"></p></div></div><div class="form-group"><label for="password_update_input" class="col-sm-4 control-label">Password</label><div class="col-sm-6"><input type="password" class="form-control" id="password_update_input"name="password" placeholder="please input password"> <spanclass="help-block"></span></div></div><div class="form-group"><label for="confirmPassword_update_input" class="col-sm-4 control-label">Confirm Password</label><div class="col-sm-6"><input type="password" class="form-control" id="confirmPassword_update_input"name="confirmPassword" placeholder="please input confirm password"> <spanclass="help-block"></span></div></div><div class="form-group"><label for="email_update_input" class="col-sm-4 control-label">Email</label><div class="col-sm-6"><input type="text" class="form-control" id="email_update_input"name="email" placeholder="please input email"> <spanclass="help-block"></span></div></div><div class="form-group"><label for="phoneNumber_update_input" class="col-sm-4 control-label">Phone Number</label><div class="col-sm-6"><input type="text" class="form-control" id="phoneNumber_update_input"name="phomeNumber" placeholder="please input phone number"> <spanclass="help-block"></span></div></div></form></div><div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button><button type="button" class="btn btn-primary" id="user_update_btn">Save</button></div></div></div></div><div class="container-fluid"><!-- 标题 --><div class="row"><div id="title_info">User Information Management Menu</div></div><!-- 新增 删除 按钮 --><div class="row"><div class="col-md-2 col-md-offset-10"><button type="button" class="btn btn-success btn-sm" id="user_add_modal_btn">Add User</button><button type="button" class="btn btn-danger btn-sm" id="user_delete_selected_btn">Delete Selected Users</button></div></div>     <div class="page-title">      </div><!-- 显示表格数据 --><div class="row">      <table class="table table-striped table-bordered table-hover" id="users_table"><thead><tr><th class="text-center" width="40"><input type="checkbox" id="check-all"></th><th class="text-center">User Id</th><th class="text-center">Username</th><th class="text-center">Email</th><th class="text-center">Phone Number</th><th class="text-center">User Type</th><th class="text-center" width="150">Operation</th></tr></thead><tbody></tbody></table></div><div class="page-action" id="page_nav_area"></div></div></div><c:set var="current_page" scope="session" value="manage_user"/><c:import url="sidebar.jsp"></c:import><!-- <script>NProgress.done()</script> -->
</body>
</html>

把对象转换成JSON字符串 第二稿支持移动设备相关推荐

  1. Java对象转换成JSON对象/JSON对象转换成JSON字符串/JSON字符串转换成JS对象

    文章目录 后端部分 前端部分 后端部分 Option op = new Option("海淀","hd");//java对象转换json对象 JSONObjec ...

  2. java把对象转成json_java 把对象 对象转换成json字符串 | 学步园

    publicclassJSONCreateDemoActivity { // 创建以下的JSON对象 publicString createJSONObject() { Gsongson = newG ...

  3. 将Model对象转换成json文本或者json二进制文件

    将Model对象转换成json文本或者json二进制文件 https://github.com/casatwy/AnyJson 注意:经过测试,不能够直接处理字典或者数组 主要源码的注释 AJTran ...

  4. 将map转换成json字符串

    import java.util.HashMap;import java.util.Map;import net.sf.json.JSONObject;public class Transfer {p ...

  5. python 对象转换为json_Python Python对象转换成JSON

    1.从Python对象转换成JSON 如果有Python对象,则可以使用json.dumps()方法将其转换为JSON字符串. 例如: 从Python对象转换为JSON:import json # a ...

  6. 消息转换器之把返回来的对象转换成json格式

    消息转换器之把返回来的对象转换成json格式 这个是把数据库的数据通过对象返给前端,会出现下列没有转换的现象 这个需要我们加入消息转换器进行转换,把Java对象转为json字符串,在配置类加入这段代码 ...

  7. 读取CSV文件内容,将其转换成JSON字符串输出

    CsvToJsonUtil 工具类作用:读取CSV文件内容,将其转换成JSON字符串输出 转换工具类代码如下: package com.test.util;import java.io.*; impo ...

  8. Flex4将对象转换成json串

    使用json需要先引入as3corelib.swc 1.将对象转换成json串 var obj:Object = new Object(); obj.filename = "1.jpg&qu ...

  9. python对象列表转换为字典_python实现class对象转换成json/字典的方法

    本文实例讲述了python实现class对象转换成json字典的方法.分享给大家供大家参考,具体如下: # -*- encoding: UTF-8 -*- class Student: name = ...

最新文章

  1. Redis的这些拓展方案,用过一条的就是大牛!
  2. HBase数据压缩编码探索
  3. Java Socket编程 - 基于TCP方式的二进制文件传输
  4. lux系统服务器安装后多大,服务器环境搭建
  5. 【NLP】NLP中的消歧
  6. 安装应用程序时,提示以前的某个程序安装挂起的解决方法
  7. linux SPI分析
  8. 2017.10.17 CF#441 F题 思考记录
  9. RabbitMq之发布订阅模式
  10. FIT 2019 | 安全人员面临的机遇与挑战
  11. ORACLE账号注册之后,要修改密码才能用
  12. BCD码与十进制转换
  13. CSDN博客——修改字体、字号与颜色
  14. python定义数组长度_python数组长度
  15. 输入输出阻抗,是怎么玩的?你会不?音频耦合电容怎么大小不一?
  16. iPhone上塔罗牌测试软件,塔罗牌占卜:测Ta对你是用情至深还是一时兴起?准到没朋友!...
  17. Manjaro Linux 魔兽世界 使用黑盒工坊安装插件
  18. 图片去水印在线-图片去水印无痕迹的app
  19. java aes 工具类_Java中的AES加解密工具类:AESUtils
  20. typedef和typename的区别

热门文章

  1. protobuf生成as文件
  2. C++文件流操作备忘录
  3. 使用Hibernate生成数据库和连接数据库
  4. Linux - 修改Cent OS系统的的hostname、配置DNS映射
  5. 获取Ip所在城市名与详细
  6. JavaEE目标及企业应用和互联网应用区别
  7. am335x 打开内部 RTC
  8. Swift面向对象基础(上)——Swift中的类和结构体(下)
  9. Centos7.0上搭建LAMP平台安装discuz后无法访问
  10. Unix原理与应用学习笔记----第五章 普通文件3