1.在index.jsp 页面点击新增
2.弹出新增对话框
3.去数据库查询部门列表,显示在对话框中
4.用户输入数据完成保存,完成校验
jq前端校验 ajax用户名重复校验 后端校验(重要数据,唯一约束)

@Pattern(regexp = “(^[a-zA-Z0-9_-]{6,16}$)|(^[**\u2E80-\u9FFF]{2,5})”
,message = 用户名必须是6-16位数字和字母的组合或者2-5位中文)
private String empName**;

private String gender;

@Pattern(regexp = “^([a-z0-9_**\.-]+)@([\da-z\.-]+)\.([a-z\**.]{2,6})$”,
message = “**邮箱格式不正确【JSR303**”)
private String email;
uri:
/emp/{id} get 查询员工
/emp post 保存emp
/emp/{id} put 修改emp
/emp/{id} delete 删除emp

模态框显示

  1. <%--模态框--%>
  2. <%--员工添加的模态框--%>
  3. <div class="modal fade" tabindex="-1" role="dialog" id="empAddModal">
  4. <div class="modal-dialog" role="document">
  5. <div class="modal-content">
  6. <div class="modal-header">
  7. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  8. <h4 class="modal-title">员工添加</h4>
  9. </div>
  10. <div class="modal-body">
  11. <form class="form-horizontal">
  12. <div class="form-group">
  13. <label for="empName_add_input" class="col-sm-2 control-label">员工姓名</label>
  14. <div class="col-sm-10">
  15. <input type="text" name="empName" class="form-control" id="empName_add_input" placeholder="empName">
  16. </div>
  17. </div>
  18. <div class="form-group">
  19. <label for="email_add_input" class="col-sm-2 control-label">邮箱</label>
  20. <div class="col-sm-10">
  21. <input type="text" name="email" class="form-control" id="email_add_input" placeholder="email@atguigu.com">
  22. </div>
  23. </div>
  24. <div class="form-group">
  25. <label for="empName_add_input" class="col-sm-2 control-label">性别</label>
  26. <div class="col-sm-10">
  27. <label class="radio-inline">
  28. <input type="radio" name="gender" id="gender1_add_input" value="M" checked="checked">
  29. </label>
  30. <label class="radio-inline">
  31. <input type="radio" name="gender" id="gender2_add_input" value="F">
  32. </label>
  33. </div>
  34. </div>
  35. <div class="form-group">
  36. <label for="empName_add_input" class="col-sm-2 control-label">部门名称</label>
  37. <div class="col-sm-4">
  38. <%--提交部门id--%>
  39. <select class="form-control" name="dId">
  40. <option>1</option>
  41. </select>
  42. </div>
  43. </div>
  44. </form>
  45. </div>
  46. <div class="modal-footer">
  47. <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
  48. <button type="button" class="btn btn-primary">保存</button>
  49. </div>
  50. </div><!-- /.modal-content -->
  51. </div><!-- /.modal-dialog -->
  52. </div><!-- /.modal -->

ajax显示部门信息

  1. /*点击新增按钮弹出模态框*/
  2. $("#emp_add_modal_btn").click(function () {
  3. /*发送AJAX请求查出部门信息,显示在下拉列表*/
  4. getDepts();
  5. /*弹出模态框*/
  6. $("#empAddModal").modal({
  7. backdrop:"static"
  8. });
  9. });
  10. /* 查出所有的部门信息显示在下拉列表中*/
  11. function getDepts() {
  12. /*清空下拉框*/
  13. $("#dept_add_select").empty();
  14. $.ajax({
  15. url:"${PATH}/depts",
  16. type:"get",
  17. success:function (result) {
  18. /*{"code":100,"msg":"处理成功",
  19. "extend":{"depts":[{"deptId":1,"deptName":"开发部"},{"deptId":2,"deptName":"测试部"}]}}*/
  20. // console.log(result);
  21. /*显示部门信息在下拉列表中*/
  22. // $("#empAddModal select").append("")
  23. $.each(result.extend.depts,function (index,item) {
  24. var option = $("<option></option>").append(this.deptName).attr("value",this.deptId);
  25. option.appendTo("#empAddModal select");
  26. });
  27. }
  28. });
  29. }

保存操作

  1. /*点击保存,保存员工*/
  2. $("#emp_save_btn").click(function () {
  3. /*1.模态框中填写的数据提交给服务器进行保存*/
  4. /*先对要提交给服务器的数据进行校验*/
  5. if(!validite_add_form()){
  6. return false;
  7. }
  8. /*2.发送ajax请求保存emp*/
  9. $.ajax({
  10. url:"${PATH}/emp",
  11. type:"post",
  12. data: $("#empAddModal form").serialize(),
  13. success:function (result) {
  14. // alert(result.msg);
  15. /*员工保存成功*/
  16. /*关闭模态框*/
  17. $("#empAddModal").modal("hide");
  18. /*来到最后一页,显示保存的数据*/
  19. /*发送ajax请求显示最后一页数据*/
  20. toPage(totalRecord);
  21. }
  22. });
  23. });

校验表单数据

  1. /*校验表单数据*/
  2. function validite_add_form(){
  3. /*1.获取需要校验的数据,使用正则表达式*/
  4. var empName = $("#empName_add_input").val();
  5. var regName = /(^[a-zA-Z0-9_-]{6,16}$)|(^[\u2E80-\u9FFF]{2,5})/;
  6. if(!regName.test(empName)){
  7. // alert("用户名可以是2-5位中文或者6-16英文和数字组合");
  8. /*清空这个元素之前的样式*/
  9. show_validate_msg("#empName_add_input","error","用户名可以是2-5位中文或者6-16英文和数字组合");
  10. return false;
  11. }else{
  12. show_validate_msg("#empName_add_input","success","");
  13. }
  14. /*2.校验邮箱信息*/
  15. var email = $("#email_add_input").val();
  16. var rgxEmail = /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/;
  17. if(!rgxEmail.test(email)){
  18. // alert("邮箱格式不正确");
  19. // $("#email_add_input").parent().addClass("has-error");
  20. // $("#email_add_input").next("span").text("邮箱格式不正确");
  21. show_validate_msg("#email_add_input","error","邮箱格式不正确");
  22. return false;
  23. }else{
  24. // $("#email_add_input").parent().addClass("has-success");
  25. // $("#email_add_input").next("span").text("");
  26. show_validate_msg("#email_add_input","success","");
  27. }
  28. return true;
  29. }

文本框下的消息提示

  1. function show_validate_msg(ele,status,msg){
  2. /*清楚当前元素的样式*/
  3. $(ele).parent().removeClass("has-success has-error");
  4. $(ele).next("span").text("");
  5. if(status == "success"){
  6. $(ele).parent().addClass("has-success");
  7. $(ele).next("span").text(msg);
  8. }else if("error" == status){
  9. $(ele).parent().addClass("has-error");
  10. $(ele).next("span").text(msg);
  11. }
  12. }

校验用户名是否可用

  1. /*校验用户名是否可用*/
  2. $("#empName_add_input").change(function () {
  3. /*发送 ajax 请求校验用户名是否可用*/
  4. var empName = this.value;
  5. $.ajax({
  6. url:"${PATH}/checkUser",
  7. data:"empName="+empName,
  8. type:"post",
  9. success:function (result) {
  10. if(result.code==100){
  11. show_validate_msg("#empName_add_input","success","用户名可用")
  12. }else{
  13. show_validate_msg("#empName_add_input","error","用户名不可用")
  14. }
  15. }
  16. });
  17. });