问题现象:

  在查生产tomcat下的localhost日志时,发现今天的记录有不少次都报org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 15005该异常。

问题分析:

  经查异常轨迹看到是某个查询要传的参数为空导致了全表查询,经过反向搜索页面请求入口,定位到了某个页面在进行初始化时在满足条件的情况下会执行此请求到后台;该请求传的参数是进行form表单序列化后得到的处理结果,那么就可以确定了序列化返回的结果内该参数没有值;然后结合页面查看该参数的input内容发现为disabled属性,此时猜测序列化的处理对disabled的失效;那么就看下该序列化参数方法是如何执行的,此js方法是重写了该内容进行了细微处理,大体未变;在循环内加上了页面日志打印,经过操作发现没有打印期望看到的name名称,那么可以进一步确认是上一步的var a = this.serializeArray()此方法返回结果不是所期望的;经过全局搜索该方法查到了jQuery-1.11.1,js此原生js文件内,看完此处的写法后就知道了serializeArray方法内对为disabled属性的进行了过滤,那么所期望的结果里该字段就不会有值了。

问题定论:

  经过上述排查经过,得知js的serializeArray方法会将disabled属性的内容剔除掉,导致$.fn.serializeObject序列化表单参数对象的方法返回的内容也是不含disabled属性的。

调整方式:

  将input内容可以设置为readonly属性,或者序列化表单之前将disabled形式去掉,结束后在还原。

随机推荐

  1. JSONPath-简单入门

    JSONPath - 是xpath在json的应用. xml最大的优点就有大量的工具可以分析,转换,和选择性的提取文档中的数据.XPath是这些最强大的工具之一. 如果可以使用xpath来解析json ...

  2. linux查看文件内容跳到文件底部和回到文件顶部的快捷键

    有时候需要查看一些日志文件,然后要从底部开始查看的话 可以按 shift+g  即可跳到文件底部 要返回文件顶部的时候 按 gg即可

  3. CodeTypeDeclaration,CodeMemberProperty动态生成代码

    由于是CodeDom些列,所以先介绍几个CodeDom表达式: :CodeConditionStatement:判断语句即是if(condition){} else{},看最全的那个构造函数: pub ...

  4. .bash_profile 文件

    1,当 .bash_profile 文件输入有误的时候,所有命令行都会不好使 输入 export PATH=/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin ...

  5. docker mysql配置挂载到卷

    docker--将mysql配置挂载到卷 1.首先在根目录创建两个文件夹,其中config文件夹中创建my.cnf配置文件.data文件夹存放数据文件,一定要为空. /docker/mysql/con ...

  6. spring boot(一)创建项目

    网上有很多springboot的入门教程,自己也因为项目要使用springboot,所以利用业余时间自学了下springboot和springcloud,使用下来发现springboot还是挺简单的, ...

  7. 【python小随笔】celery异步任务与调用返回值

    s1.py(配置任务文件) from celery import Celery import time my_task = Celery("tasks", broker=" ...

  8. 1028 人口普查 (20 分)C语言

    题目描述 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过200岁的老人,而今天是20 ...

  9. 1082 射击比赛 (20 分)C语言

    本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军:谁差得最远,谁就是菜鸟.本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟.我们假设靶心在原点(0,0). 输入 ...

  10. 【一起学源码-微服务】Ribbon源码五:Ribbon源码解读汇总篇~

    前言 想说的话 [一起学源码-微服务-Ribbon]专栏到这里就已经全部结束了,共更新四篇文章. Ribbon比较小巧,这里是直接 读的spring cloud 内嵌封装的版本,里面的各种config ...