• 雨燕权限管理前端技术总结


    1,url数量,

    • list,show这些页面可以直接显示数据的,使用get,model返回数据
    • save,login,regiset直接打开一个填充表页面,使用get,直接跳转一个jsp
    • save.json,login.json,regiset.json提交数据,使用ajax ,post,根据返回信息由前端跳转
    • 总结:有几个页面就有几个get方法,页面有几个提交就有几个匹配的post方法,

    2,jsp相关

    • jstl标签添加
      <%@ page language="java" contentType="text/html;charset=UTF-8"
               pageEncoding="UTF-8" %>
      <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
      <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
      <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
      <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
      <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
      View Code
    • url这个时候是被springmvc控制的,如user/admin/list,现在游标在list,使用静态资源要回退两格,
      href="../../user/css/common
    • if标签,
      性别:
                              <c:if test="${null == condition4Gender.code}">
                                  <input type="radio" name="gender" value="" checked>全选
                                  <input type="radio" name="gender" value="MALE"><input type="radio" name="gender" value="FEMALE"></c:if>
      View Code
    • forEach标签,使用枚举时候引入相关类
      <%@page import="com.liepin.ycdemo.platform.user.enums.EnumGender" %>
      <c:forEach items="${userList}" var="tform" varStatus="count">
                              <tr>
                                  <td class="user-name">
                                      <a href="#">${tform.name}</a>
                                  </td>
                                  <td>${tform.gender.desc}</td>
                                  <td>${tform.phone}</td>
                                  <td>${tform.position}</td>
                                  <td>${tform.state.desc}</td>
                                  <td>${tform.role.desc}</td>
                                  <td class="controls">
                                      <a href="/user/admin/show?userId=${tform.id}">修改</a>
                                      <a onclick="deleteById(${tform.id})">删除</a>
                                      <a href="/user/showAddtional?userId=${tform.id}" data-selector="delete">查看</a>
                                  </td>
                              </tr>
                          </c:forEach>
      View Code
    • 自动for循环
      <c:forEach var="i" begin="1" end="${totalPage}" step="1">
                          <a onclick="index(${i-1},${totalPage})">${i}</a>
                      </c:forEach>
      View Code
    • Java 的model方面
      model.addAttribute("condition4Name", name);
              model.addAttribute("condition4Phone", phone);
              model.addAttribute("condition4Gender", gender);
              model.addAttribute("userList", employeeDtoListQuery.getList());
              model.addAttribute("rowCount", employeeDtoListQuery.getTotalCount());
              model.addAttribute("pageSize", pageSize);
              model.addAttribute("curPage", curPage);
              model.addAttribute("totalPage", PageUtil.calTotalPage(pageSize, employeeDtoListQuery.getTotalCount()));
              return "user/management";
      View Code

    3,html相关

    • 官方提交按钮,submit,用于提交表单,a标签也可以
      <input type="submit" class="btn btn-save" onclick="index(${userId },${userAddtionalForm.userAddtionalId})" value="提交">
      View Code
      <a onclick="deleteById(${tform.id})">删除</a>
      View Code
    • 官方跳转标签
      <a href="/user/showAddtional?userId=${userId }" data-selector="delete">取消</a>
      View Code
    • 官方输入框
      <input type="text" id="name" name="name" validate-title="用户姓名"
                                     validate-rules="[['required','请输入$']]" value="${form.name }">
      View Code
    • 官方单选框
      <c:if test="${'1' == form.gender.code}">
                                  <input type="radio" name="gender" value="MALE" checked><input type="radio" name="gender" value="FEMALE"></c:if>
                              <c:if test="${'2' == form.gender.code}">
                                  <input type="radio" name="gender" value="MALE" ><input type="radio" name="gender" value="FEMALE" checked></c:if>
      View Code
    • 官方文件处理
      <input id="file" type="file" name="file">
      View Code
    • 官方勾选框checkbox
      <input type="checkbox" name="isAutoLogin" data-selector="checkbox" checked="checked" value="on">
      View Code
    • 官方分页,jsp版本
      <a onclick="index(${0},${totalPage})"><<</a>
                  <a onclick="index(${curPage-1},${totalPage})">上页</a>
                  <c:if test="${curPage - 2 <= 0 &&  totalPage<=5}">
                      <c:forEach var="i" begin="1" end="${totalPage}" step="1">
                          <a onclick="index(${i-1},${totalPage})">${i}</a>
                      </c:forEach>
                  </c:if>
      
                  <c:if test="${curPage - 2 <= 0 &&  totalPage>5}">
                      <c:forEach var="i" begin="1" end="5" step="1">
                          <a onclick="index(${i-1},${totalPage})">${i}</a>
                      </c:forEach>
                  </c:if>
      
                  <c:if test="${curPage - 2 > 0 && curPage + 2<totalPage}">
                      <c:forEach var="i" begin="${curPage -1 }" end="${curPage + 3}" step="1">
                          <a onclick="index(${i-1},${totalPage})">${i}</a>
                      </c:forEach>
                  </c:if>
      
                  <c:if test="${curPage - 2 > 0 && curPage + 2>=totalPage}">
                      <c:forEach var="i" begin="${totalPage - 4 }" end="${totalPage}" step="1">
                          <a onclick="index(${i-1},${totalPage})">${i}</a>
                      </c:forEach>
                  </c:if>
                  <a onclick="index(${curPage+1},${totalPage})">下页</a>
                  <a>现在第${curPage+1}页</a>
                  <a onclick="index(${totalPage-1},${totalPage})">>></a>
                  <a>共${rowCount}条记录,${totalPage}页</a>
      View Code
    • 官方大输入框text area,回显不能写value里面
      <textarea id="introduce" name="introduce" style="700px;height:200px;">
                              杯子在多数时候,盛装的仅仅是半杯水,遇见的那个人依然似乎无法填补内心的空洞,时间一点
                          一点地过去,水也一点一点地蒸发掉,你开始觉得他越来越无法满足你的全部幻想全部期待,对望的
                          时候,彼此的眼里充满了空洞犹疑。杯子里面的水终于全部消失。分离是如此容易的一件事,就连曾经
                          淡淡的水痕都刹那间无影无踪。生活似乎回到了最初的样子,天依旧蓝得透心,城市依旧匆忙得落寞。只
                          是你不明白,为什么在每一个狂欢之夜,隐藏在人群中望着烟花绽放的夜空,会一边默默地流泪,一边强
                          作笑颜。你对自己说是因为感动于这绚烂,没错,一切都太绚烂,绚烂得已经让你不知所措,绚烂得已经让
                          你相信一切希望与期待都未曾出现过。于是决定走开,带着一只空旷而干涸的杯子,有的时候一边走一边疑
                          惑,世界那么大,为什么那么渺小孤单的一滴雨还是会打在自己的脸庞上呢,人潮汹涌,流走的水再也无法收
                          集,过去的心境再也无法找寻。有的时候,你在一些奇怪的梦里恍惚地以为曾经的
                          一汪水,还心满意足地躺在自己杯子里面,只有醒过来的时候才了解,即使是沧海,多年之后也化作了桑田。
                          </textarea>
      View Code

    4,js相关

    • jq获得文件
      var file = $('#file')[0].files[0]
      View Code
    • jq获得普通
      var introduce = $('#introduce').val();
      View Code
    • jq获得checkbox,勾选框,没有值 的时候undefined
      var isAutoLogin = $("input[name='isAutoLogin']:checked").val();
      View Code
    • jq获得raido,单选框,
      var gender = $("input[name='gender']:checked").val();
      View Code

    5,策略

    • 普通ajax,注意ajax的url要写全http这些
       var username = $('#username').val();
          var password = $('#password').val();
          var position = $('#position').val();
          var email = $('#email').val();
          var birthday = $('#birthday').val();
          var name = $('#name').val();
          var phone = $('#phone').val();
          var gender = $("input[name='gender']:checked").val();
          if (username == '' || password == '' || position == '' || email == '' || birthday == '' || name == '' || phone == '' || gender == '') {
              alert('有信息尚未填写好')
              return;
          }
          console.log(username, password, position, email, birthday, name, phone, gender);
          var formData = new FormData();
          formData.append("username", username);
          formData.append("password", password);
          formData.append("position", position);
          formData.append("email", email);
          formData.append("birthday", birthday);
          formData.append("name", name);
          formData.append("phone", phone);
          formData.append("gender", gender);
      
      
          $.ajax({
              url: 'http://localhost:8080/auth/register.json',
              type: 'POST', //GET
              data: formData,
              timeout: 10000,    //超时时间
              contentType: false,//这里
              processData: false,//这两个一定设置为false
              beforeSend: function (xhr) {
              },
              success: function (data, textStatus, jqXHR) {
                  console.log(data);
                  if (data.data != 'SUCCESS') {
                      alert(data.data)
                  } else {
                      alert("注册成功,跳转到登录页")
                      setTimeout(function() { window.location.href="/auth/login" }, 1000);
                  }
              },
              error: function (xhr, textStatus) {
                  console.log('错误')
                  console.log(xhr)
                  console.log(textStatus)
              },
              complete: function () {
              }
          })
      View Code
    • 当有under fined上传影响入参的时候,不让她加入formdata
      if(userAddtionalId != undefined){
              formData.append("userAddtionalId", userAddtionalId);
          }
      View Code
    • ajax显示不是正确的返回,+延时跳转
      if (data.data != 'SUCCESS') {
                      alert(data.data)
                  } else {
                      alert("成功")
                      setTimeout(function() { window.location.href="/user/showAddtional?userId="+ userId }, 1000);
                  }
      View Code
  • 相关阅读:
    Redis 3.2 版本后 list 的实现
    每当发生一次垃圾收集,所有用户线程都必须跑到最近的一个安全点然后挂起线程来等待垃圾回收
    你了解dt.jar吗
    spring boot + vue + element-ui全栈开发入门——开篇
    玩转spring boot——开篇
    java结合node.js非对称加密,实现密文登录传参——让前后端分离的项目更安全
    零门槛,包教会。让你在5分钟内使用以太坊ERC20智能合约发行属于自己的空气币
    spring boot高性能实现二维码扫码登录(下)——订阅与发布机制版
    spring boot高性能实现二维码扫码登录(中)——Redis版
    spring boot高性能实现二维码扫码登录(上)——单服务器版
  • 原文地址:https://www.cnblogs.com/vhyc/p/10567340.html
Copyright © 2020-2023  润新知