关于spring mvc 请求参数校验使用中的坑 。 maven 生命周期,线程池杂识

 //一、使用@Valid  @NotNull 启动项目请求,参数为空,
    // 好像没有效果。原因是只加了jar包:javax.validation:validation-api,这个包是一个规范,并没有实现
    // spring 的默认实现是 org.hibernate:hibernate-validator 加上即可。
    // 再次请求 返回400,
    //看日志是校验未通过,接下来就是校验异常后处理了。使用以下代码处理
    @ResponseBody
    @ExceptionHandler(MethodArgumentNotValidException.class)
    public String bindException(MethodArgumentNotValidException e) {
        QrResponse res = new QrResponse();
        res.setBack("中文");
        String result = JSON.toJSONString(res);
        return result;//(本项目是返回json字符串)
    }
    //不在显示400异常stack了。
    //然而仔细看返回的json ,发现出现了乱码
    //二、网上一查全是说@Notnull等的提示信息乱码
    //@NotNull等注解是可以自定义提示信息的,都是说这个提示信息乱码怎么解决。
    //我并不关心提示信息,整了半天,最后clean了重新打包好了
    //三、自定义校验
    public class ScanValidator implements ConstraintValidator<ScanAnnotation,ADTO> {
        //ScanAnnotation 自定义注解,可以放到类上,属性上,仿@notnull
        //ADTO 需要校验的类或属性
    }
    @Retention(RetentionPolicy.RUNTIME)
    @Target({ElementType.TYPE})
    @Constraint(validatedBy = ScanValidator.class) //这句别忘了
    public @interface ScanAnnotation {

    }
$# 表示传入脚本的参数
2. grep -a xx 筛选文件内容(解决报错binary 问题)
   grep -C num 显示搜索内容的前后num行
        -v 反向查询
        -i 忽略大小写
3. 自定义命令
    alias cdl=‘cd /home/wtposp/logs/‘
alias cdc=‘cd /var/www/pro/transaction_agent/current/transaction_agent/WEB-INF/classes/‘
alias cdt=‘cd /var/www/apps/transaction_agent/java/apache-tomcat-8.5.24/bin‘

    永久生效: 修改~/.bashrc 文件,source ~/.bashrc
4. 切换用户 :
    sudo su 切换到root ,
    su username  切换到普通用户,exit 即可回到root 用户。
【其他】
1. solid原则:单一,开闭,里氏,接口,依赖倒置,迪米特。
2. win + shift + s  win系统自带【截图工具】,截图后点击后上角复制即可复制。
3. alt + A 微信自带截图工具
4. xshell 快捷键 ctrl +w 删除光标前一个单词,ctrl+u  删除光标前所有单词 , crtl+Y 撤销删除
5. maven生命周期有三个: 默认default , clean 和 site .  常用的clean 和 install(默认生命周期)不在一个生命周期里(重点)。
    所以不要以为install会自动执行clean(尤其在你删除了文件后,不clean,直接install可能会发现删除的文件还在包里,晕).
    install 对应的default 生命周期为: validate,compile,test,package,verify,install,deploy
6. 如果excel不能编辑,可以先打开word,再重新打开excel 即可编辑。
7. ThreadPoolExecutor.submit() 可以返回的含义:其实是sumbit方法内部将线程包装成futureTask,仍然调用的是execute()方法,然后返回包装后的可以通过
的futureTask 而不是说submit直接返回线程执行结果。 用户如需获取线程返回值,可以通过futureTask.get()方法阻塞线程等待线程返回。

原文地址:https://www.cnblogs.com/zhangchenglzhao/p/11103936.html

时间: 2024-10-09 05:51:41

关于spring mvc 请求参数校验使用中的坑 。 maven 生命周期,线程池杂识的相关文章

Spring基础系列14 -- Spring MVC 请求参数的几种获取方法

Spring MVC 请求参数的几种获取方法 转载:http://www.cnblogs.com/leiOOlei/p/3658147.html 一.      通过@PathVariabl获取路径中的参数 @RequestMapping(value="user/{id}/{name}",method=RequestMethod.GET) public String printMessage1(@PathVariable String id,@PathVariable String n

Spring MVC请求参数绑定

所谓请求参数绑定,就是在控制器方法中,将请求参数绑定到方法参数上 @RequestParam 绑定单个请求参数到方法参数上 @RequestParam("id") Integer id 将请求参数名为id的变量,绑定到id参数上,如果不知道@RequestParam值,默认从请求参数中取和变量名相同的请求参数 @RequestParam(value = "id",required = false) Integer id 可以通过指定required参数来指定是否必须

Servlet(简介,请求参数,页面跳转,生命周期,创建,配置,ServletContext,线程)

1.Servlet简介 servlet是java servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序, 主要功能在于交互式浏览和修改数据,生成动态的web内容 服务端运行的小程序:MVC(Model view Controller) servlet运行于支持Java的应用服务器中.从现实上讲,Servlet可以响应任何类型的请求,但 绝大多数情况下servlet只用来扩展基于http协议的web服务器 servlet:可以接受客户端的任何请求 servlet编程需要使

spring mvc请求参数中文乱码解决方案

POST 请求 在web.xml中加上增加过滤器 1 <filter> 2 <filter-name>encodingFilter</filter-name> 3 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 4 <init-param> 5 <param-name>encoding</param

spring注解式参数校验

很痛苦遇到大量的参数进行校验,在业务中还要抛出异常或者返回异常时的校验信息,在代码中相当冗长,今天我们就来学习spring注解式参数校验. 其实就是:hibernate的validator. 开始啦...... 1.controller的bean加上@Validated就像这样 1 @ApiOperation(value = "用户登录接口", notes = "用户登录") 2 @PostMapping("/userLogin") 3 publ

Spring mvc数据转换 格式化 校验(转载)

原文地址:http://www.cnblogs.com/linyueshan/p/5908490.html 数据绑定流程 1. Spring MVC 主框架将 ServletRequest 对象及目标方法的入参实例传递给 WebDataBinderFactory 实例,以创建 DataBinder 实例对象2. DataBinder 调用装配在 Spring MVC 上下文中的 ConversionService 组件进行数据类型转换.数据格式化工作.将 Servlet 中的请求信息填充到入参对

【Spring学习笔记-MVC-10】Spring MVC之数据校验

作者:ssslinppp       1.准备 这里我们采用Hibernate-validator来进行验证,Hibernate-validator实现了JSR-303验证框架支持注解风格的验证.首先我们要到http://hibernate.org/validator/下载需要的jar包,这里以4.3.1.Final作为演示,解压后把hibernate-validator-4.3.1.Final.jar.jboss-logging-3.1.0.jar.validation-api-1.0.0.G

Struts2中请求参数校验

在Struts2中,请求参数的校验要放在服务端进行.其实我们在做.NET的项目时,使用过EasyUI,EasyUI有各种校验机制,那会是在客服端就直接对输入参数进行了校验.但是我们的Struts框架也是蛮强大的,它本身就给我们提供了非常详细的校验机制. 1.手动校验 使用手动校验,需要一下这么几个条件: ①你的Action要继承ActionSupport接口: ②重写validate接口,如果属性有问题,通过addFieldError(String,String)方法存储错误信息. ③如果向fi

spring mvc 请求转发和重定向

spring mvc controller间跳转 重定向 传参 url:http://zghbwjl.blog.163.com/blog/static/12033667220137795252845/ 1. 需求背景    需求:spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示. 本来以为挺简单的一件事情,并且个人认为比较常用的一种方式,一百度全都有了,这些根本不是问题,但是一百度居然出乎我的意料