开发小记

开发小记

禁止页面滚动
js

document.body.style.overflow='hidden';

jquery

$('body').css('overflow','hidden');

监听input的输入事件

// propertychange 事件是针对ie浏览器的,要放到input事件前面     
$('#boardlot_num').on('propertychange input',function(){
    // do something
}

绑定input事件的时候我发现以前用的autoNumerbic 跟它 会有冲突:

chrome 和 firefox 支持input事件,绑定autoNumberic插件后,自定义的input事件失效

于是我做了一点关于input限制输入纯数字的解决方案:
html代码 :

<input id="boardlot_num" value="1" data-pre="1" />  

js代码:

$('#boardlot_num').on('propertychange input',function(){
        var value = $(this).val(), preValue = $(this).data('pre');
        if(/^\d*$/.test(value)){
            // do something
            $('#boardlot_num').data('pre',value);
        }else{
            $('#boardlot_num').val(preValue);
        }
});
// 兼容chrome firefox ie8 亲测有效

按List中的对象的属性排序

// 查询list      
List<MallProductTeambattleSignup> ogSigns = mallProductTeambattleSignupServ.list(propsSignup, 1, 8, null);     
// 初始化比较器,比较器的泛型为list的泛型     
Comparator<MallProductTeambattleSignup> comparator = new Comparator<MallProductTeambattleSignup>() {   
    @Override   
    public int compare(MallProductTeambattleSignup o1, MallProductTeambattleSignup o2) {    
        // 按count属性按降序排    
        return o2.getCount() - o1.getCount();     
    }    
};     
// 调用Colloctions接口对list排序      
Collections.sort(ogSigns, comparator);     

Git 配置 path
配置 ...\Git\bin 和 Git\libexec\git-core

sql执行顺序

  1. from子句组装来自不同数据源的数据;
  2. where子句基于指定的条件对记录行进行筛选;
  3. group by子句将数据划分为多个分组;
  4. 使用聚集函数进行计算;
  5. 使用having子句筛选分组;
  6. 计算所有的表达式;
  7. 使用order by对结果集进行排序
(8)SELECT (9)DISTINCT 
(11)<TOP_specification> <select_list> 
(1)FROM <left_table> 
(3)<join_type> JOIN <right_table> 
(2)ON <join_condition> 
(4)WHERE <where_condition> 
(5)GROUP BY <group_by_list> 
(6)WITH {CUBE ROLLUP} 
(7)HAVING <having_condition> 
(10)ORDER BY <order_by_list> 

打乱一个list的顺序
应用场景:
我要做援购的随机取援购码,但他们在数据库中是数据存在的,于是乎,有多种方法:乱序存顺序遍历顺序存乱序遍历等等。
这里利用了一个小技巧,顺序存,读取之后打乱,再顺序取,基本代码如下:

List<?> unusedCodes = xxx.list(****);
// shuffle 是 洗牌的意思
java.util.Collections.shuffle(unusedCodes);

// 遍历,不赘述      
for(...){
  // TODO ...
}

java基础真的很重要。这道题当作是一道面试题都行。

js 获取url参数

var mycode = window.location.search.substr(1).split("&")[0];           
mycode = mycode.split('=')[1];

数据库类型用的date类型非datetime类型报batch_update错误
RT

mysql group_concat() 陷阱
mysql配置group_concat()函数最长可接收1024长度,对于某些情景下这个长度是不够的。

查询语句:

SELECT @@global.group_concat_max_len;

修改语句:

-- 大小请自行斟酌
SET GLOBAL group_concat_max_len=102400;

也可以在文件(my.ini)中后边追加这一句:

group_concat_max_len = 102400   

注:我用的mysql是5.6.20,文件在C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

关于hql查询和sql查询
hql查询用user_iduserId这两种形式都好使(前提是po用的userId形式,dao层用getCurrentSession,如果用openSession是无效的)

关于转义
经过我这段时间的观察,有以下几个地方会出问题:

  • 后台拼接html返回页面。对于开放输入的内容要用StrUtil.escapeHtml()方法或者StrUtil.textarea2Html()等方法。
  • 前台jsp中的el表达式,如${user.nickname},改成struts标签形式<s:property value="user.nickname"/>
  • 前台ajax返回数据时进行处理,如$('#nickname').text(data.nickname),改为$('#nickname').text($('<pre/>').text(data.nickname).html())

如果还有其他情况会继续补充

The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory异常
这个异常是servlet执行service方法时报的错,多半是jdk、tomcat和web.xml之间不匹配出现的。tomcat8中servlet-api.jar改了很多,在svn项目检出时,j2ee版本不要定太高,目前意思网的是2.5,tomcat8的标准是3.1,但我不建议到3.1,容易出现servlet的bug
网友解答:

Get rid of any servletcontainer-specific libraries such as jsp-api.jar in your /WEB-INF/lib folder. This exception indicates that you've put servletcontainer-specific libraries of a container which supports only Servlet 2.4 / JSP 2.0 or older in there (the getJspApplicationContext() method was introduced in Servlet 2.5 / JSP 2.1). This is a major mistake. Those libraries don't belong in the webapp's classpath.

Perhaps you did this to overcome project compilation errors, which is indeed a pretty common beginner's mistake. This should have been solved differently, you should refer the target runtime in your project, not copy some libraries of an arbitraty servletcontainer make/version into your project. It would make your project incompatible with servletcontainers of a different make and/or version.
相关链接1
/相关链接2

关于html中的target属性与点击事件
如果用到target="_blank" 点击时会新开页,并且每次点击展开不同页面。
如果用到target="xxxx" 点击时会新开页,但是每次点击都是刷新同一页面
在新开的页中,能够取到父页面的元素,如下:

window.opener.$.find('#bgColor')

真正点击触发的事件中,回调函数写window.open是不会被屏蔽的

ServletContext取资源路径
旧版本当前使用的方法是

String path = ServletContext.getRealPath("WEB-INF/config");

但是网友们说,这不好,这是坑,而且tomcat8下不好使,改进代码如下:

URL url = this.context.getResource("/WEB-INF/config");
path = url.getPath();

CSDN博文地址

关于ActiveXObject
window.ActiveXObject 这个元素在ie8-10都是存在的,ie11就没了

js比较数字大小
比较大小之前一定要看看变量的类型,如果是String型,就得这样写

parseInt(arg0) < parseInt(arg1)

否则会出现500>1000的情况(字符串比较大小按单个字符比较)

Hibernate merge和save区别
merge对对象操作之后,持久化会断开,如果期望执行的是save操作,保存之后的自增主键是获得不到的

eclipse启动时Workspace in use or cannot be created, choose a different one
把workspace.metadata目录下的.lock文件删除掉

IE8下的js原生trim报错
使用jquery的$.trim()

jQuery给DOM追加元素时,可以简化

$('body').append($('<li/>');

标签按钮切换抖动问题
选中状态下加了classthis,this的样式加了1px的border,如果line-heighthight一样的话,会有抖动问题,修改为line-height = height - 2*border

杜绝连点问题

  1. 表单提交,如果是struts下可以加<s:token/>
<s:form action="page1" theme="simple">    
<s:datetimepicker name="order.date" label="购买日期" toggleType="explode" value="today"/><br/>    
<s:token/>    
<s:reset/><s:submit/>    
   </s:form>

另外要配置拦截器,详情请戳我

  1. ajax提交可以这样做:
$('#submit').on('click', function() {
    // 校验表单
    if( validateForm() ) return;
    // 接触绑定的点击事件
    $('#submit').off('click');
    // 提交表单
    // TODO
})

off()函数可以解除指定元素上的指定事件
jquery 文档 :

unbind方法跟这样的作用类似
jquery 文档 :

意思网

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容