JS中批量给元素绑定事件过程中的相关问题使用闭包解决

解决元素批量绑定事件的时候,出现i=最后一个循环变量的值的方法有两种:把这个循环变量保存起来,不要让它的作用域在整个函数,而是在循环体内
在JS中,你写一个for循环的时候,内部的循环变量I其实是会保存在它运行的函数或类内的,所以你会发现你给元素批量绑定事件的时候,出现i=最后一个循环变量的值,这就很坑爹啊,解决的方案有2钟,
思路就是:把这个循环变量保存起来,不要让它的作用域在整个函数,而是在循环体内

1.使用闭包(如果你不懂闭包,请打开百度:www.baidu.com)
2.使用with关键字,with语法是with( obj ) { //使得可以在此直接访问obj的属性,而不用加obj.XXX }
代码示例:


 

转自:http://www.jb51.net/article/35581.htm

ibatis解决sql注入问题

对于ibaits参数引用可以使用#和$两种写法,其中#写法会采用预编译方式,将转义交给了数据库,不会出现注入问题;如果采用$写法,则相当于拼接字符串,会出现注入问题。

例如,如果属性值为“’ or ‘1’=’1 ”,采用#写法没有问题,采用$写法就会有问题。

对于like语句,难免要使用$写法,

1. 对于Oracle可以通过’%’||’#param#’||’%’避免;

2. 对于MySQL可以通过CONCAT(‘%’,#param#,’%’)避免;

3. MSSQL中通过‘%’+#param#+’% 。

如下3种SQL语句:

 

转自:http://blog.csdn.net/scorpio3k/article/details/7610973

js小技巧: 给div绑定keydown事件

要想给一个元素绑定keydown事件我们经常这样: 

但是当你尝试给div元素绑定时会发现不起作用, 解决办法是给这个div添加一个tabindex的属性: 

 

转自:http://www.douban.com/group/topic/28694305/

c:forEach 的常用整理

获取<c:forEach的长度: var cnt = parseInt(‘${fn:length(images)}’);

<c:forEach>标签具有以下一些属性:

var:迭代参数的名称。在迭代体中可以使用的变量的名称,用来表示每一个迭代变量。类型为String。

items:要进行迭代的集合。对于它所支持的类型将在下面进行讲解。

varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息。

begin:如果指定了items,那么迭代就从items[begin]开始进行迭代;如果没有指定items,那么就从begin开始迭代。它的类型为整数。

end:如果指定了items,那么就在items[end]结束迭代;如果没有指定items,那么就在end结束迭代。它的类型也为整数。

step:迭代的步长。

current:当前这次迭代的(集合中的)项。

index:当前这次迭代从0开始的迭代索引。

count:当前这次迭代从1开始的迭代计数。

first:用来表明当前这轮迭代是否为第一次迭代,该属性为boolean类型。

last:用来表明当前这轮迭代是否为最后一次迭代,该属性为boolean类型。

begin:begin属性的值。

end:end属性的值

step:step属性的值

<c:if test=”${status.count%2==0}”></c:if>//被2整除

<c:if test=”${status.first==true}”></c:if>//是第一个元素

<c:if test=”${status.last==true}”></c:if>//是最后一个元素

 <c:forEach begin=”1″ end=”5″ var=”i” items=”${list}”></c:forEach>

转自:http://www.cnblogs.com/jirglt/archive/2013/01/24/2874799.html

freemarker+ITextRenderer 生成html转pdf

网上已经有比较多的例子 写这个 但是很多都是简单的 demo,而且有很多隐藏的问题 
或者是零散的 对某些问题的解决方案 

本人再次写一个完整的demo  无bug 可用 

我是在spring mvc中应用的 

模版中在table 加样式 

这是为了避免 在pdf中显示不全  
我的 功能是 通过生成的html生成合同 pdf 

最终效果图: 


模版文件 就是 ftl文件 你 用html怎么显示就可以生成什么样的pdf 

里面可以包含样式  图片 


尽量用table布局 这样不会出现 显示到pdf显示不全的 问题 


另外 附上freemark、模板文件头部关键 代码主要是处理 中文问题 

 

转自:http://skyfar666.iteye.com/blog/2001353

Freemarker中Configuration的setClassForTemplateLoading方法参数问题

Freemarker是一个模板框架,主要是为了加快染速度而产生的。它与web容器无关,只要是关于模板生成一些代码的都可以使用它完成。

比如xml,Java代码的生成等。 其他类似的模板框架还有velocity。

本文主要讲的是Freemarker的加载模板目录问题,它的语法就不描述了。具体的语法可在官网下载参考手册参考即可

加载模板目录方法

Freemarker提供了3种加载模板目录的方法。 它使用Configuration类加载模板

3种方法分别是:

看名字也就知道了,分别基于类路径、文件系统以及Servlet Context。

第二,三种没啥好说的。

第二种基于文件系统。 比如加载/home/user/template下的模板文件。

这样就获得了/home/user/template/Base.ftl这个模板文件。

第三种基于web project。 第二个参数是基于WebRoot下的。

比如: setServletContextForTemplateLoading(context, “/ftl”) 就是 /WebRoot/ftl目录。

第一种基于类路径的方法有点小坑,其实看下源码代码就知道了。

比如 :

其实这个方法是根据类加载路径来判断的,最终会执行以下代码:

这里注意一下第二个参数需要以 “/” 开头。

 其实我们看下源码就知道了:

可以看到,prefix如果最后1个字符不是 “/” 会默认加上。 但是第一个不是 “/” 字符 并不会自动加上。

最后获得的URL方法:

我们可以看到URL是通过loaderClass.getResource(fullPath) 获得的

最终的具体生成代码是通过FMParser这个类生成的。  FMParser是使用JavaCC写的,由于时间有限,就没有具体研究了。

转自:http://www.cnblogs.com/fangjian0423/p/freemarker-templateloading-question.html

多页单个tif文件转换为多个jpg文件

 

转自:http://wangminger.iteye.com/blog/1134106

jai给tif格式的图片加水印

 

转自:http://blog.csdn.net/hhxinghuo/article/details/6336282

autocomplete attribute

Syntax

HTML
JavaScript

p = object.autocomplete

Property values

Type: String

off    AutoComplete is disabled.

on    AutoComplete is enabled. Any string other than off enables AutoComplete.

Standards information

Remarks

As of Internet Explorer 11, the autocomplete property is no longer supported for input type=password fields.

The AutoComplete feature is highlighted in the Using AutoComplete in HTML Forms overview.

When AutoComplete is enabled, suggestions are provided for the value of a text field. Suggested values are mapped values based on the name attribute or vCard schema specified by thevcard_name attribute.

If AutoComplete is disabled, values are not stored and suggested values are not presented.

Values in input type=password elements can be mapped for AutoComplete; however, the ability to store this information can be disabled in the browser, and the user is prompted for a confirmation before the value is stored.

Information provided by the AutoComplete feature is not exposed to the object model, and is not visible to a Web page until the user selects one of the suggestions as a value for the text field.

This attribute is not supported in HTML Applications (HTAs).

Examples

This example uses the autocomplete attribute to disable the AutoComplete feature.

 

转自:http://msdn.microsoft.com/en-us/library/ms533486.aspx

JavaScript 获取当前时间戳

JavaScript 获取当前时间戳:
第一种方法:

结果:1280977330000

第二种方法:

结果:1280977330748

第三种方法:

结果:1280977330748

以上代码将获取从 1970年1月1日午夜开始的毫秒数。二者的区别是,第一种方法的毫秒位上为全零,即只是精确到秒的毫秒数,第二和第三种方法得到的结果一样

作者:蓝之风
出处:http://www.cnblogs.com/vaiyanzi/

转自:http://www.cnblogs.com/vaiyanzi/archive/2010/08/05/1792931.html