- 前有一文 iText 用 HTMLWorker 转换 HTML 为 PDF 时可设置表格列宽度 介绍了在 iText5.0.4 的基础上转换 html 为 pdf 时,如何让 table 中的单元格能支持宽度设定,并且还修改了三份源代码: HTMLWorker.java、IncCell.java 和 IncTable。也只是实现了以百分比形式来设定每列的相对宽度,现在好了,iText 顺理的发现了用户的这一需求,在进化后的 iText5.0.6 中可以让你设定 <td> 的宽度,可直接用百分比数值(20%)相对宽度,或用参照数值来设置,之后呢,HTMLWorker 会帮你转换为相对的宽度--比如有三列,分别设置为 20,10,50,被转换为相对宽度就是 25%,12.5% 和 62.5%。
看iText5.0.6 简短的 release 说明,iText5.0.6 has been released(http://lowagie.com/node/73): Read More - 现在越来越多的项目用 Slfj,而与它结合最好的 Log4j 替代品就是 Logback,下面是 Logback 的一个可供参考的基本的配置文件 logback.xml,可以控制台和文件同时输出,文件可进行两种类型的归档,分天存储日志,或按文件大小压缩日志归档。
Logback 和 Log4J 同出一人之手,而作者的专注点也在 Logback,Logback 有更好的性能,特别是在现代 Java 程序中。
一般是 rollingPolicy 和 triggeringPolicy 搭配使用,rollingPolicy 负责做什么,triggeringPolicy 管理什么时候做,而 FixedWindowRollingPolicy 本身就实现了 TriggeringPolicy 接口,所以它能够自我管理,不需要别人来推动就会做的。 Read More - 在 Tomcat 中可以配置 reloadable="true" 做到类改变后,Tomcat 重新加载。其实这个过程大约也是当 Tomcat 发现有改变的类会重新启动一个新的应用程序重新加载所有的类来服务于新的请求,只是不需要你手动的去执行 shutdown.sh(.bat),再 startup.sh(.bat)。这种方式对于古老的 jsp 程序完全能从容以对,因为 web.xml 里几乎没什么随应用一起启动且耗时长代码;但当下是框架横行,web.xml 中随应用一起启动的程度可谓是争先恐后的,所以仅仅依赖 reloadable="true" 是满足不了需求的。每改一个类(无论是改动了方法体中的代码还是变动了类的结构,准确的说是动了 WEB-INF/classes 目录中的任何文件) 你都可能就会在
Jan 28, 2011 7:19:42 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext Read More - Tomcat 7 在加强原有功能的同时也增加了一些新特性。有些文章列举了Tomcat 7的新特性,但大多数都没有对它们进行详细地解释、评价并给出可执行的示例。除了列举出新特性,这篇文章还对Tomcat 7的七个最值得注意的特性与增强部分进行分类、评定以及演示可执行代码以使你能够对每个特性/加强有个更好的理解。
我将下面列举的这些分类为“Tomcat 7 新特色:创新性改变”和“Tomcat 7 加强:进化性改变”:
Tomcat 7 新特性:创新性改变- 使用随机数令牌(nonce)防止跨站请求伪造(cross-site request forgery—CSRF)攻击
- 验证时改变 jsessionid 以防止固定会话攻击
- 内存泄露检测及预防
- 使用别名在war文件外存储静态内容 Read More
- Java 步入到 Tiger 后增加了自动拆装箱特性,构造 Integer 不用 Integer i = new Integer(1); 或者 Integer i = Integer.valueOf(1); 只要写成 Integer i=1 就行了。Java 的自动拆装箱只是针对基本类型与其封装类型之间的转换,无法自定义类似的行为,比如想实现某个自定义类 Item,能够通过 Item i = 1; 就完成从整形 1 到自定义类的自动装箱功能。
Java 在目前还是没办法做到的,当然也是我自己的一个猜想。Java 的自动拆装箱与 C# 相比也是要弱些,C# 中 int 仅仅是 Int32 这样的类型的别名,所以它们也是等效的,声明 int i=0; 你就可以呼叫 i.ToString() 方法了。可以说 C# 比 Java 更对象化了。
现在来看下 C++ 是怎么实现自定义类的 Item i = 10; 这样的声明的,见代码: Read More - 曾经有两篇介绍了在 XSLT 里如何调用 C# 或 Js 写的函数,其中用到了与微软相关的,像:xmlns:msxsl="urn:schemas-microsoft-com:xslt", <msxsl:script implements-prefix="unmifn" language="C#">。回到了 Java 环境同样得考虑在 XSLT 中如何调用 Java 的方法,毕竟在 XSLT 外处理内容要方便许多。
参考了一些网上的文章,大多讲的不怎么好理解与应用,未尝试之前不免让人想缩手。其实做起来可以更简单些,两步而已:
1) 声明时指定包名和函数前缀
2) 调用时加上前缀和类名及静态方法,传入参数
要想再深入些,可注意有时候 Java 函数应该传入的参数类型是什么?是否能调用非静态方法,public 是最基本的要求,以及通过什么组件来调用的等等。 Read More - 我们在实际的 Spring+Struts 的项目中一般都会定义一个 Struts Action 基类。基类中当然是提供一些公共的方法了,用上了 Spring 的话,里面放几个 getBean() 方法就会方便许多。Web 项目多数时候我想还是在 Action 中有经常性的获取 Bean 实例,如果有用在别处的话,也可以借鉴。
在没有泛型支持下,我们从 Spring Context 中获取 Bean 要强型转换类型,如:
SomeClass some = (SomeClass)context.getBean("someClass");
上面对应的方法原型是 Object getBean(String beanName);
从 jdk 1.5 开始有泛型了,可以加一个泛型,省却了转型步骤,看起来要舒服一些,如: Read More - 在Maven中,使用第三方库一般是通过pom.xml文件中定义的dependency从远程repository中下载该库。但是如果库文件是公司内部的库,或者在本地而不能通过远程repository下载,这种情况下,有两种方法可以满足需求。
方法一:
将本地的jar文件安装到本地repository中,具体步骤如下:
1、准备好本地的jar文件
2、使用如下命令安装jar文件
mvn install:install-file -Dfile=abc.jar
-DgroupId=com.mycompany.myproduct -DartifactId=abc
-Dversion=1.0 -Dpackaging=jar -DgeneratePom=true
其中,-Dfile制定jar文件的位置。执行完该命令后,会在本地repository(通常是$HOME\.m2目录)中出现一个目录(com),在其下会有一个abc-1.0.jar的文件和一个自动产生的pom文件。 Read More - 笔者致: 当你打开这个页面的时候, 基本就无需再看后面的内容了, 因为直接用
LinkedHashMap就能满足您的需求. 文中对这个问题的探索只是不知道别人早已过河了, 仍然在河里摸着石头.LinkedHashMap是 JDK 1.4 加进来的, 之所以有apache-commons ListOrderedMap大约是因为它最早所处的是 JDK 1.4 之前的年代.
在使用 Java 的 Hashmap 时,输出 Map 中的值如何使之按放入的顺序输出来,像 List 那样保持顺序。这里的顺序不是说对集合中的数据进行的排序,要是的话用 TreeMap,像 TreeSet 一样就行。 我们看个例子:1Map<String, Integer> map = new HashMap<String, Integer>(); 2map.put("a", 12); 3map.put("b", 11); 4map.put("c", 3); 5 6for (String key : map.keySet()) { 7 System.out.println(map.get(key)); 8}
Read More - 其实这跟 Slf4J 通用日志框架没什么关系,单单是 Logback 的事,把 Slf4J 扯进来只因它们是对黄金组合。
我们在 log4j 中想要不显示第三方包的非常冗余的日志输出时,只要在 log4j.properties 中写上:1log4j.logger.org.hibernate=ERROR
这样在 hibernate 里的日志级别在 ERROR 以下的 TRACE、DEBUG、WARN 和 INFO 将不被输出,控制台会比较的干净。
Logback 的配置文件是 logback.xml,曾经在里面给 <appender> 加的 <pattern> 是: Read More