当前位置: 首页 > news >正文

网站报备查询asp.net企业网站设计

网站报备查询,asp.net企业网站设计,奎屯市住房和城乡建设局网站,wordpress的链接功能近期看到了ControllerAdvice这个注解#xff0c;本身只是为了看下全局异常处理的#xff0c;简单了解后发现可以分别与ExceptionHandler、ModelAttribute、InitBinder实现 全局异常、全局参数、请求参数预处理 的功能。 目录 一、全局异常处理二、全局参数处理三、请求参数预… 近期看到了ControllerAdvice这个注解本身只是为了看下全局异常处理的简单了解后发现可以分别与ExceptionHandler、ModelAttribute、InitBinder实现 全局异常、全局参数、请求参数预处理 的功能。 目录 一、全局异常处理二、全局参数处理三、请求参数预处理 一、全局异常处理 实现全局异常处理需要配合ExceptionHandler注解进行处理 导入maven !-- https://mvnrepository.com/artifact/com.alibaba/fastjson -- !-- 阿里巴巴json转换 -- dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.75/version /dependency!-- lombok -- dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.6/versionscopeprovided/scope /dependency!-- 校验包 -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactId /dependency自定义处理器代码 import com.zhangximing.springboot_annotate.pojo.ErrorResponse; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.Map;//全局处理器 ControllerAdvice public class GlobalHandler {// 异常处理器ExceptionHandler(Exception.class)ResponseBodypublic ErrorResponse handleException(Exception e) {// 这里可以根据需要记录异常信息发送通知等System.err.println(发生异常: e.getMessage());// 返回错误信息ErrorResponse response new ErrorResponse(500,服务器发生异常e.getMessage()请稍后重试);return response;} }实体代码 import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;/*** 异常处理实体*/ Data NoArgsConstructor AllArgsConstructor public class ErrorResponse {private int code;private String message; }import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.http.HttpStatus;/*** 统一API响应结果封装实体*/ Data NoArgsConstructor AllArgsConstructor public class Result {private int code;private String message;private Object data;public static Result success() {return new Result(HttpStatus.OK.value(), 操作成功, null);}public static Result success(Object data) {return new Result(HttpStatus.OK.value(), 操作成功, data);}public static Result error(String message) {return new Result(HttpStatus.BAD_REQUEST.value(), message, null);} }测试方法 import com.alibaba.fastjson.JSONObject; import com.zhangximing.springboot_annotate.pojo.Result; import lombok.SneakyThrows; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*;RestController RequestMapping(/test) public class TestController {// 测试全局异常SneakyThrowsRequestMapping(/globalException)public Result globalException(Validated RequestBody JSONObject param) {// 设置验证门槛String authCode param.getString(authCode);// 验证不通过抛异常if (null authCode || !XM_PASS.equals(authCode.trim())){throw new Exception(authCode error);}return Result.success();} }测试结果 二、全局参数处理 实现全局参数处理需要配合ModelAttribute注解进行处理 引入的pom以及实体代码与上同 import com.zhangximing.springboot_annotate.pojo.ErrorResponse; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.beans.propertyeditors.StringTrimmerEditor; import org.springframework.ui.Model; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.*;import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map;//全局处理器 ControllerAdvice public class GlobalHandler {// 设置全局参数ModelAttributepublic void presetParam(Model model){model.addAttribute(globalAttr,globalAttr_Number1);}// //注意ModelAttribute若加括号不传任何参数的时候默认key为map这种写法与上述写法不一致之处在于会包裹一层map // ModelAttribute() // public MapString, String presetParam(){ // MapString, String map new HashMapString, String(); // map.put(globalAttr, globalAttr_Number2); // return map; // } }测试方法 // 测试全局预设参数 // 预设情况一 直接model转换map GetMapping(presetOne) public String presetOne(Model model){MapString, Object modelMap model.asMap();return JSONObject.toJSONString(modelMap); }// 预设情况二指定全局异常变量 GetMapping(presetTwo) public String presetTwo(ModelAttribute(globalAttr) String globalAttr){return globalAttr; }// 预设情况三指定modelMap对象 GetMapping(presetThree) public String presetThree(ModelMap modelMap) {return JSONObject.toJSONString(modelMap); }测试结果 三、请求参数预处理 实现请求参数预处理需要配合InitBinder注解进行处理 这部分参考了博客https://blog.csdn.net/qq_36829919/article/details/101210250 import com.zhangximing.springboot_annotate.pojo.ErrorResponse; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.beans.propertyeditors.StringTrimmerEditor; import org.springframework.ui.Model; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.*;import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map;//全局处理器 ControllerAdvice public class GlobalHandler {// 请求参数预处理InitBinderpublic void processParam(WebDataBinder dataBinder){/** 创建一个字符串微调编辑器* 参数{boolean emptyAsNull}: 是否把空字符串()视为 null*/StringTrimmerEditor trimmerEditor new StringTrimmerEditor(true);/** 注册自定义编辑器* 接受两个参数{Class? requiredType, PropertyEditor propertyEditor}* requiredType所需处理的类型* propertyEditor属性编辑器StringTrimmerEditor就是 propertyEditor的一个子类*/dataBinder.registerCustomEditor(String.class, trimmerEditor);//同上当日期类型时dataBinder.registerCustomEditor(Date.class,new CustomDateEditor(new SimpleDateFormat(yyyy-MM-dd), false));} }测试方法 // 测试全局预处理 RequestMapping(initDeal) public MapString, Object test(String str, Date date) throws Exception {MapString, Object map new HashMapString, Object();map.put(str, str);map.put(data, date);return map; }测试结果 个人理解ControllerAdvice该注解的作用原理跟aop相似都是进行拦截而需要拦截处理的具体功能是由其他注解来协助类似于aop的Advice。 以上我学习整理的ControllerAdvice注解的使用。
http://www.zqtcl.cn/news/640461/

相关文章:

  • 做婚纱网站的图片园林设计
  • 濮阳公司建站淮北城市住建网
  • 建设银行网站打不开 显示停止工作专门做地图的网站
  • 有没有人一起做网站app网站建设方案
  • 洛阳网站建设兼职企业网站建设文案
  • 动漫制作贵州seo策略
  • asp网站建设项目实训该怎么跟程序员谈做网站
  • 网站软件资源iis不能新建网站
  • 网站设计的发展趋势西安市建设工程交易网
  • 做外贸收费的服装网站武钢建设公司网站
  • wordpress 全文搜索企业网站优化策略
  • 犀牛云做网站如何网站备案需要什么东西
  • wordpress星座网站建设与优化计入什么科莫
  • 外贸网站优化方案绵阳网站建设怎么做
  • 黑龙江省网站建设电商的运营推广
  • 惠州建站模板wordpress更换主题帖子封面不显示
  • 网站开发为什么不用cgi了营销型网站案例
  • 网站怎么做飘窗电子商城网站建设的实训内容
  • 怎样申请建网站做it公司网站
  • 一个网站费用给人做ppt的网站吗
  • 免费简历在线制作网站杭州市网站建设公司
  • 用家庭宽带做网站 没有8080端口可以吗汕头教育学会网站建设
  • 南通seo公司网站广东涂料网站建设
  • 杭州哪家公司可以做网站苏州公司官网制作
  • 建一个网站大约多少钱做社区网站怎么做
  • 安阳建设网站企业单位网站建设内容需要什么
  • 网站如何被谷歌收录wordpress搭建企业官网
  • 网站 服务报价网站建设需要具备
  • 鹿泉企业网站建设wordpress使用支付宝当面付
  • 手机网站重要性彩票网站上的走势图是怎么做的