问题现象:

  在查生产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. js 正则匹配 两个字符串之间,某个字符串之前(之后)的内容

    1.js截取两个字符串之间的内容: var str = "aaabbbcccdddeeefff"; str = str.match(/aaa(\S*)fff/)[1]; alert ...

  2. 【codeforces 749B】Parallelogram is Back

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  3. Javascript中数组方法reduce的妙用之处

    Javascript数组方法中,相比map.filter.forEach等常用的迭代方法,reduce常常被我们所忽略,今天一起来探究一下reduce在我们实战开发当中,能有哪些妙用之处,下面从red ...

  4. dotnet 控制台读写 Sqlite 提示 no such table 找不到文件

    在使用 dotnet 读写 Sqlite 可以通过 EF Core 的方法,但是在 EF Core 创建的数据库可能和读写的数据库不是相同的文件 在我运行代码的时候发现在通过迁移创建数据库,创建的文件 ...

  5. ZOJ——Knight Moves(bfs)

    Knight Moves Time Limit: 2 Seconds      Memory Limit: 65536 KB A friend of you is doing research on ...

  6. Python自定义函数的参数

    在Python中自定义的函数可以有三类不同的参数 formal parameters positional arguments Keyword Arguments When a final forma ...

  7. 赋值、关系、逻辑运算、if、switch case

    cout << boolalpha将打印输出0转为false,1转为true 逻辑运算符: &&(与)    且      两个条件为真时结果为真 ||(或) 或   两个 ...

  8. 小白学 Python 爬虫(31):自己构建一个简单的代理池

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  9. 根据设备id自动打开本设备的串口

    对于串口设备经常遇到重新拔插串口设备时候,程序又需要重新选择串口打开.对此很少麻烦的要死. 现在我们可以根据该设备的id去遍历串口设备,一旦符合就打开此串口即可. public void init() ...

  10. $POJ$2976 $Dropping\ tests$ 01分数规划+贪心

    正解:01分数规划 解题报告: 传送门! 板子题鸭,,, 显然考虑变成$a[i]-mid\cdot b[i]$,显然无脑贪心下得选出最大的$k$个然后判断是否大于0就好(,,,这么弱智真的算贪心嘛$T ...