Memory River

记忆河,记今日之事忆往昔之流

thymeleaf的if条件合并单元格

for循环生成表格时:<!--如果带该if条件,若值为0或0.0时则不显示该td,会造成同一行后面的td空白,后面的数字会移到该单元格显示--> <!--<td th:if="${info.num1}" th:text="${info.num1}"></td> --> <!--直接显示时不用带if条件--> <td th:text="${info.num1}"></td> <!--如果带该if条件,若值为0或0.0时则不显示该td,会造成同一行后面的td空白,后面的数字会移到该单元格显示--> <!--<td th:if="${info.num2}" th:text="${info.num2} + '%'"></td> --> <!--直接显示时不用带if条件--> <td th:text="${info.num2} + '%'"></td> 最右侧合并单元格<tr th:each="info,infoStat:${infos}"> <span th:if="${infoStat.index==0}"> <td th:text="${info.id}"></td> <td th:text="${info.name}"></td> <td th:rowspan="${infoStat.size}" th:text="${link}"></td> </span> <span th:if="${infoStat.index!=0}"> <td th:text="${info.id}"></td> <td th:text="${info.name}"></td> </span> </tr>
    2019-12-08 14:44:58    ·    52       0

nginx出现 “414 request-uri too large”

在请求查询的时候使用了Get方法,由于拼接的url过长,导致nginx出现了“414 request-uri too large”错误。出现这种问题可以按照如下解决:在nginx的nginx.conf修改如下参数的: client_header_buffer_size 512k; large_client_header_buffers 4 512k;
    2019-12-08 14:30:59    ·    63       0

thymeleaf 空值的处理

错误信息:Property or field ‘name’ cannot be found on nullcayi 因为新增和查看是同一个页面处理的,查看的时候,字段是有值的,但是新增的时候因为没有值而报错。解决方案:thymeleaf提供了空值判断的方式,如下:<input type="text" name="menuName" disabled th:value="${data?.name}" class="layui-input">
    2019-12-06 09:58:26    ·    34       0

MongoDB查询是否为空

1、为null或者不存在ldb.test.find({"test":null}); 2、不为null并且存在记录db.test.find({"test":{"$ne":null}}); db.test.find({"test":{"$ne":null, $exists:true}}); 3、存在db.test.find({"test":{$exists:true}}); 4、不存在(不会返回null的值)db.test.find({"test":{$exists:false}}); 5、存在且不为null,不为""(空字符串)List testList = new ArrayList<>(); testList .add(null); testList .add(""); queryUser.put("test", new BasicDBObject("$nin", testList));
    2019-12-06 09:47:17    ·    17       0

异常:java.io.IOException: The temporary upload location [/tmp/tomcat.676857388762

springboot的项目,部署在Linux下,刚开始一切都很OK的,今天突然发布文章的时候无法上传文件了,跟踪日志发现报错异常了,异常如下:java.io.IOException: The temporary upload location [/tmp/tomcat.6768573887622289341.8602/work/Tomcat/localhost/ROOT] is not valid 异常原因:在Linux 系统中,SpringBoot 应用服务在启动(java -jar 命令启动服务)的时候,会在操作系统的/tmp目录下生成一个tomcat*的文件目录,上传的文件先要转换成临时文件保存在这个文件夹下面。由于临时/tmp目录下的文件,在长时间(10天)没有使用的情况下,就会被系统机制自动删除掉。所以如果系统长时间无人问津的话,就可能导致上面这个问题。解决方案:一.临时的,直接重新启动项目就行,会重新建立临时文件夹二.在配置文件中配置tomcat的临时目录:server.tomcat.basedir=/home/temp 三. 写个配置类,通过@Bean的方式配置目录:/** * 文件上传临时路径 */ @Bean MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); factory.setLocation("/home/temp"); return factory.createMultipartConfig(); } 我使用的是第二种,在项目启动时生成该文件。
    2019-11-14 10:42:52    ·    50       0

Js 移除Array/数组中指定元素

首先需要找到元素的下标:var array = [0,1,2,3,4,5]; var index = array.indexOf(5); 使用splice函数进行移除:if (index > -1) { array.splice(index, 1); } indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。splice 函数的第二个参数指删除的数目。splice直接修改原数组,并把删除的所有元素以另一个新数组的方式返回。
    2019-11-14 10:15:46    ·    48       0

js取整数、取余数的方法

取整1.取整// 丢弃小数部分,保留整数部分 parseInt(5/2) // 2 2.向上取整// 向上取整,有小数就整数部分加1 Math.ceil(5/2) // 3 3.向下取整// 向下取整,丢弃小数部分 Math.floor(5/2) // 2 4.四舍五入// 四舍五入 Math.round(5/2) // 3 取余// 取余 6%4 // 2
    2019-11-12 09:51:37    ·    142       0

js判断变量是不是数组的方法

方案一:instanceof变量 instanceof 类型返回的是布尔值true false<br>例: var a = []a instanceof Array 方案二:原型prototype + toString +call() 首先: Object.prototype.toString.call(variable)来判断,返回值是字符串 其次: Object.prototype.toString.call(variable).indexOf('Array') 如果变量对象是纯数组,返回的数字不是-1 最后: Object.prototype.toString.call(variable).indexOf('Array') !== -1 比对数值是否等于-1就能判断是否是数组类型 是为true方案三:原型prototype + isPrototypeOf()Array.prototype.isPrototypeOf(variable) isPrototypeOf() 函数 : 用于指示对象是否存在于一个对象的原型链中。如果存在返回true,反之返回false。该方法属Object对象,由于所有的对象都继承了Object的对象实例,因此几乎所有的实例对象都可以使用该方法。如果variable的原型链中存在Array对象,就会返回true,也就说明variable是数组类型。方案四:构造函数 constructorvariable.constructor variable.constructor.toString() variable.constructor.toString().indexOf("Array") !== -1 一个数组类型的实例,其原型__proto__.constructor右边是Array关键字,再拿到字符串,最后查找字符串中Array关键字的位置是否等于-1方案五:数组方法 isArray()Array.isArray(variable)
    2019-10-21 10:28:59    ·    75       0

解决unable to start within 45 seconds

在启动eclipse或启动服务时,有时会出现这个错Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor. eclipse里启动服务时,有时会报错 Server Tomact was unable to start within 45 seconds的错误,通过如下操作可解决。方法一:可直接修改配置文件,在工作控件目录:workspace\.metadata\.plugins\org.eclipse.wst.server.core\,有一个servers.xml文件,把start-timeout的值由45改成一个大一些的值,比如120。方法二:在eclipse里修改,server窗口选中服务,双击(或者右键,点击打开)Timeouts下,start的值改大一些,默认是45然后重启eclipse
    2019-10-21 10:21:11    ·    54       0

Sublime Text3快捷键大全

选择类Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本。Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑。举个栗子:快速选中并更改所有相同的变量名、函数名等。Ctrl+L 选中整行,继续操作则继续选择下一行,效果和 Shift+↓ 效果一样。Ctrl+Shift+L 先选中多行,再按下快捷键,会在每行行尾插入光标,即可同时编辑这些行。Ctrl+Shift+M 选择括号内的内容(继续选择父括号)。举个栗子:快速选中删除函数中的代码,重写函数体代码或重写括号内里的内容。Ctrl+M 光标移动至括号内结束或开始的位置。Ctrl+Enter 在下一行插入新行。举个栗子:即使光标不在行尾,也能快速向下插入一行。Ctrl+Shift+Enter 在上一行插入新行。举个栗子:即使光标不在行首,也能快速向上插入一行。Ctrl+Shift+[ 选中代码,按下快捷键,折叠代码。Ctrl+Shift+] 选中代码,按下快捷键,展开代码。Ctrl+K+0 展开所有折叠代码。Ctrl+← 向左单位性地移动光标,快速移动光标。Ctrl+→ 向右单位性地移动光标,快速移动光标。shift+↑ 向上选中多行。shift+↓ 向下选中多行。Shift+← 向左选中文本。Shift+→ 向右选中文本。Ctrl+Shift+← 向左单位性地选中文本。Ctrl+Shift+→ 向右单位性地选中文本。Ctrl+Shift+↑ 将光标所在行和上一行代码互换(将光标所在行插入到上一行之前)。Ctrl+Shift+↓ 将光标所在行和下一行代码互换(将光标所在行插入到下一行之后)。Ctrl+Alt+↑ 向上添加多行光标,可同时编辑多行。Ctrl+Alt+↓ 向下添加多行光标,可同时编辑多行。编辑类Ctrl+J 合并选中的多行代码为一行。举个栗子:将多行格式的CSS属性合并为一行。Ctrl+Shift+D复制光标所在整行,插入到下一行。Tab 向右缩进。Shift+Tab 向左缩进。Ctrl+K+K 从光标处开始删除代码至行尾。Ctrl+Shift+K 删除整行。Ctrl+/ 注释单行。Ctrl+Shift+/ 注释多行。Ctrl+K+U 转换大写。Ctrl+K+L 转换小写。Ctrl+Z 撤销。Ctrl+Y 恢复撤销。Ctrl+U 软撤销,感觉和 Gtrl+Z 一样。Ctrl+F2 设置书签Ctrl+T 左右字母互换。F6 单词检测拼写搜索类Ctrl+F 打开底部搜索框,查找关键字。Ctrl+shift+F 在文件夹内查找,与普通编辑器不同的地方是sublime允许添加多个文件夹进行查找,略高端,未研究。Ctrl+P 打开搜索框。举个栗子:1、输入当前项目中的文件名,快速搜索文件,2、输入@和关键字,查找文件中函数名,3、输入:和数字,跳转到文件中该行代码,4、输入#和关键字,查找变量名。Ctrl+G 打开搜索框,自动带:,输入数字跳转到该行代码。举个栗子:在页面代码比较长的文件中快速定位。Ctrl+R 打开搜索框,自动带@,输入关键字,查找文件中的函数名。举个栗子:在函数较多的页面快速查找某个函数。Ctrl+: 打开搜索框,自动带#,输入关键字,查找文件中的变量名、属性名等。Ctrl+Shift+P 打开命令框。场景栗子:打开命名框,输入关键字,调用sublime text或插件的功能,例如使用package安装插件。Esc 退出光标多行选择,退出搜索框,命令框等。显示类Ctrl+Tab 按文件浏览过的顺序,切换当前窗口的标签页。Ctrl+PageDown 向左切换当前窗口的标签页。Ctrl+PageUp 向右切换当前窗口的标签页。Alt+Shift+1 窗口分屏,恢复默认1屏(非小键盘的数字)Alt+Shift+2 左右分屏-2列Alt+Shift+3 左右分屏-3列Alt+Shift+4 左右分屏-4列Alt+Shift+5 等分4屏Alt+Shift+8 垂直分屏-2屏Alt+Shift+9 垂直分屏-3屏Ctrl+K+B 开启/关闭侧边栏。F11 全屏模式Shift+F11 免打扰模式
    2019-10-21 10:12:37    ·    46       0