ibatis #跟$的区别

每天遇到问题记录

1.#变量名#  会转化为 jdbc 的 ?, 比如 select * from user where name=#name# 会转化为jdbc的 select * from user where name=?,把?参数设置为name的值,而$变量名$就直接把 $name$替换为 name的内容, 也就是由可能 select * from user where name=$name$ 如果name为 "' ' or 1 = 1", 那么这样就有可能导致sql注入,所以ibatis用#比$好,不会造成sql注入。

2.ibatis中的参数传入的值参数比较多,最好用bean方式传入,也就是通过set/get取值的方式给sql map注入参数,不要用hashmap结构传入,每次用hashmap传入会占用比较多的内容。如果参数少,用hashmap也比较方便简单。但是对传入参数的判断,用bean方式比较容易检测发现,配置也能够统一配置。

3."#"包含了一个位置信息,默认的锚点是#top 也就是网页的上端,而javascript:void(0) 仅仅表示一个死链接
这就是为什么有的时候页面很长浏览链接明明是#可是跳动到了页首,而javascript:void(0) 则不是如此,以调用脚本的时候最好用void(0).

今天遇到一种情况,用href="#",会导致js执行页面整体偏移,导致左边的导航菜单只显示一半,而用href="javascript:void(0)"或者用

href="javascript:onsubmit()" 执行js函数onsubmit()就不会导致页面整体向左偏移。我们可以这样用<a href="javascript:void(document.form.submit())">,这句话会进行一次submit操作。那什么情况下用void(0)比较多呢,无刷新,当然是Ajax了,看一下Ajax的web页面的话,一般都会看到有很多的void(0),:),所以在使用 void(0)之前,最好先想一想,这个页面是否需要整体刷新。
4一个html页面如果有有两个控件的id一样,当获取这个控件的值时,获取的是在前面的这个控件的值。

原文地址:https://www.cnblogs.com/secbook/p/2655262.html