當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring Boot EasyUI edatagrid 扩展
生活随笔
收集整理的這篇文章主要介紹了
Spring Boot EasyUI edatagrid 扩展
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
edatagrid擴展組件詳解
edatagrid組件是datagrid的擴展組件,增加了統(tǒng)一處理CRUD的功能,可以用在數(shù)據(jù)比較簡單的頁面。使用的時候需要額外引入jquery.edatagrid.js為了能夠把后臺自動捕獲的異常顯示到前臺這里必須使用最新版本的jquery.edatagrid.js文件能夠直接在數(shù)據(jù)表格里面進行CRUD
列表
新增
修改
刪除
刪除異常
項目圖片
AjaxResult.java,改變輸出屬性適應edatagrid.onError方法
package com.jege.spring.boot.json;/*** 返回json對象*/ public class AjaxResult {private static final String OK = "ok";private static final String ERROR = "error";private boolean isError = false;private String msg = OK;public AjaxResult success() {return this;}public AjaxResult failure() {isError = true;msg = ERROR;return this;}public AjaxResult failure(String message) {isError = true;msg = message;return this;}public boolean getIsError() {return isError;}public void setIsError(boolean isError) {this.isError = isError;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}}CommonExceptionAdvice.jave,修改了返回的http狀態(tài)
package com.jege.spring.boot.exception;import java.util.Set;import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; import javax.validation.ValidationException;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.http.HttpStatus; import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.validation.BindException; import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; import org.springframework.web.HttpMediaTypeNotSupportedException; import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.MissingServletRequestParameterException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus;import com.jege.spring.boot.json.AjaxResult;/*** 全局異常處理*/ @ControllerAdvice @ResponseBody public class CommonExceptionAdvice {private static Logger logger = LoggerFactory.getLogger(CommonExceptionAdvice.class);/*** 400 - Bad Request*/@ResponseStatus(HttpStatus.BAD_REQUEST)@ExceptionHandler(MissingServletRequestParameterException.class)public AjaxResult handleMissingServletRequestParameterException(MissingServletRequestParameterException e) {logger.error("缺少請求參數(shù)", e);return new AjaxResult().failure("required_parameter_is_not_present");}/*** 400 - Bad Request*/@ResponseStatus(HttpStatus.BAD_REQUEST)@ExceptionHandler(HttpMessageNotReadableException.class)public AjaxResult handleHttpMessageNotReadableException(HttpMessageNotReadableException e) {logger.error("參數(shù)解析失敗", e);return new AjaxResult().failure("could_not_read_json");}/*** 400 - Bad Request*/@ResponseStatus(HttpStatus.BAD_REQUEST)@ExceptionHandler(MethodArgumentNotValidException.class)public AjaxResult handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {logger.error("參數(shù)驗證失敗", e);BindingResult result = e.getBindingResult();FieldError error = result.getFieldError();String field = error.getField();String code = error.getDefaultMessage();String message = String.format("%s:%s", field, code);return new AjaxResult().failure(message);}/*** 400 - Bad Request*/@ResponseStatus(HttpStatus.BAD_REQUEST)@ExceptionHandler(BindException.class)public AjaxResult handleBindException(BindException e) {logger.error("參數(shù)綁定失敗", e);BindingResult result = e.getBindingResult();FieldError error = result.getFieldError();String field = error.getField();String code = error.getDefaultMessage();String message = String.format("%s:%s", field, code);return new AjaxResult().failure(message);}/*** 400 - Bad Request*/@ResponseStatus(HttpStatus.BAD_REQUEST)@ExceptionHandler(ConstraintViolationException.class)public AjaxResult handleServiceException(ConstraintViolationException e) {logger.error("參數(shù)驗證失敗", e);Set<ConstraintViolation<?>> violations = e.getConstraintViolations();ConstraintViolation<?> violation = violations.iterator().next();String message = violation.getMessage();return new AjaxResult().failure("parameter:" + message);}/*** 400 - Bad Request*/@ResponseStatus(HttpStatus.BAD_REQUEST)@ExceptionHandler(ValidationException.class)public AjaxResult handleValidationException(ValidationException e) {logger.error("參數(shù)驗證失敗", e);return new AjaxResult().failure("validation_exception");}/*** 405 - Method Not Allowed*/@ResponseStatus(HttpStatus.METHOD_NOT_ALLOWED)@ExceptionHandler(HttpRequestMethodNotSupportedException.class)public AjaxResult handleHttpRequestMethodNotSupportedException(HttpRequestMethodNotSupportedException e) {logger.error("不支持當前請求方法", e);return new AjaxResult().failure("request_method_not_supported");}/*** 415 - Unsupported Media Type*/@ResponseStatus(HttpStatus.UNSUPPORTED_MEDIA_TYPE)@ExceptionHandler(HttpMediaTypeNotSupportedException.class)public AjaxResult handleHttpMediaTypeNotSupportedException(Exception e) {logger.error("不支持當前媒體類型", e);return new AjaxResult().failure("content_type_not_supported");}/*** 500 - Internal Server Error*/@ResponseStatus(HttpStatus.OK)@ExceptionHandler(ServiceException.class)public AjaxResult handleServiceException(ServiceException e) {logger.error("業(yè)務邏輯異常", e);return new AjaxResult().failure("業(yè)務邏輯異常:" + e.getMessage());}/*** 500 - Internal Server Error*/@ResponseStatus(HttpStatus.OK)@ExceptionHandler(Exception.class)public AjaxResult handleException(Exception e) {logger.error("通用異常", e);return new AjaxResult().failure("通用異常:" + e.getMessage());}/*** 操作數(shù)據(jù)庫出現(xiàn)異常:名稱重復,外鍵關聯(lián)*/@ResponseStatus(HttpStatus.OK)@ExceptionHandler(DataIntegrityViolationException.class)public AjaxResult handleException(DataIntegrityViolationException e) {logger.error("操作數(shù)據(jù)庫出現(xiàn)異常:", e);return new AjaxResult().failure("操作數(shù)據(jù)庫出現(xiàn)異常:字段重復、有外鍵關聯(lián)等");} }user.jsp,有很大的變化
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>用戶管理</title> <%@include file="/WEB-INF/page/common.jsp"%> <!-- 額外添加的jquery.edatagrid.js --> <script type="text/javascript" src="${ctx}/static/easyui/jquery.edatagrid.js"></script> <script type="text/javascript">// 頁面加載完畢之后才能寫jQuery的代碼$(function() {$('#userDatagrid').edatagrid({url : '/user/json',saveUrl : '/user/save',updateUrl : '/user/save',destroyUrl : '/user/delete',onError : function(index, data) {$.messager.alert('錯誤提示', data.msg, 'error');}});}); </script> </head> <body><!-- 數(shù)據(jù)表格組件 --><table id="userDatagrid" title="用戶管理" fit="true" border="false" fitColumns="true" singleSelect="true"pagination="true" rownumbers="true" toolbar="#userDatagridToolbar"data-options="onSave:function(){$('#userDatagrid').edatagrid('reload');},destroyMsg:{norecord:{// 在沒有記錄選擇的時候執(zhí)行title:'警告',msg:'沒有選擇要刪除的行!!!'},confirm:{// 在選擇一行的時候執(zhí)行 title:'確定',msg:'你真的要刪除嗎?'}}"><thead><tr><th data-options="field:'id',hidden:true">編號</th><th field="name" width="50" sortable="true" editor="{type:'validatebox',options:{required:true}}">名稱</th><th field="age" width="50" sortable="true"editor="{type:'numberbox',options:{required:true,min:20,max:80,precision:0}}">年齡</th></tr></thead></table><!-- 數(shù)據(jù)表格組件工具欄 --><div class="easyui-layout" fit="true"><div id="userDatagridToolbar" region="north" border="false"style="border-bottom: 1px solid #ddd; height: 32px; padding: 2px 5px; background: #fafafa;"><div style="float: left;"><a href="javascript:;" onclick="javascript:$('#userDatagrid').edatagrid('addRow')"class="easyui-linkbutton c1" iconCls="icon-add">添加</a> <a href="javascript:;"onclick="javascript:$('#userDatagrid').edatagrid('saveRow')" class="easyui-linkbutton c2"iconCls="icon-save">保存</a> <a href="javascript:;"onclick="javascript:$('#userDatagrid').edatagrid('destroyRow')" class="easyui-linkbutton c3"iconCls="icon-remove">刪除</a> <a href="javascript:;"onclick="javascript:$('#userDatagrid').edatagrid('cancelRow')" class="easyui-linkbutton c4"iconCls="icon-cancel">取消</a><a href="javascript:;"onclick="javascript:$('#userDatagrid').edatagrid('reload')" class="easyui-linkbutton c5"iconCls="icon-reload">刷新</a></div><div style="float: right"><form method="post">關鍵字:<input name="q" size="10" /> <a href="javascript:;"onclick="javascript:$('#userDatagrid').edatagrid('load', {q : $('input[name=q]').val()});"class="easyui-linkbutton c5" iconCls="icon-search">搜索</a></form></div></div></div> </body> </html>如果感覺不錯的話記得給我點贊喲!!!
總結(jié)
以上是生活随笔為你收集整理的Spring Boot EasyUI edatagrid 扩展的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言插入排序
- 下一篇: Spring Boot 动态修改定时任务