Java EL系列 1.JUEL简介
inkfish翻译,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish
)。本文是我学习JUEL同时,对原网站进行的简单的翻译,原网站地址:http://juel.sourceforge.net/
JUEL
是统一表达式语言(Unified Expression Language
, EL
)的一个实现,是JSP 2.1
标准(JSR-245
)的一部分,已经作为Java EE 5
的一部分,并且,JUEL
2.2实现了JSP 2.2
发行版,与Java EE 6
规范完全兼容。(来源:http://blog.csdn.net/inkfish)
动机
自从EL作为JSTL的一部分,EL成为JSP 2.0标准的一部分。不过现在,在JSP 2.1中,EL API已经分离到javax.el包中,已经移除了所有JSP核心包的依赖。
换句话说:EL已经能用到非JSP的应用中!(来源:http://blog.csdn.net/inkfish)
特性
JUEL
提供了统一表达式语言的轻量级和高效的实现。
* 高性能
——解析表达式当然是性能的瓶颈。JUEL
用手写的代码来解析,手写的代码效率比之前使用的(javacc)生成的解析器快10倍!一旦编译,表达树会高速的运行。
* 插件式的缓存
——即使JUEL
解析器飞快,解析表达式相对来说在资源消耗上也是昂贵的。因此,最佳的方法是只解析表达式字符串一次。JUEL
默认的缓存机制,这种机制在多数情况下已经足够使用了。即使如此,JUEL
也允许方便的像插件般使用你自己的缓存。
* 小体积
——JUEL
经过精心的设计,让代码的大小和内存使用量尽量最小。
* 方法调用
——JUEL
支持方法调用,比如${foo.matches('[0-9]+')}
。使用EL的解析机制,方法被解析和调用。在JUEL 2.2
中,方法调用特性是默认打开的。
* 多参数调用
——JUEL
支持Java 5函数和方法调用里使用多参数,比如,在format
函数中绑定了String.format(String, String...)
,允许这样使用:${format('Hey %s','Joe')}
。在JUEL 2.2
中,多参数特性是默认打开的。
* 可拔插的
——JUEL
能被配置成能在Java运行环境或JEE应用服务器中自动探测到EL的实现。使用JUEL
并不需要应用去显式的引用JUEL
实现中所特有的类。(来源:http://blog.csdn.net/inkfish)
状态
JUEL
被认为具有产品级的稳定性,代码经过很好的测试(80%的覆盖率),并且所有特性均已实现。(来源:http://blog.csdn.net/inkfish)
可用性
JUEL
采用Apache 2.0
许可协议。(来源:ht
相关文档:
java ip地址转换为长整型;
public class Util {
/**
* 字符串ip转换为long
* @param 字符串ip
* @return
*/
public static long getStr ......
public static void replaceString(String source,String oldStr,String newStr){
System.out.println(source);
String result = source.replaceAll("(?i)"+oldStr
, newStr); //大小写不敏 ......
关键字: json java
JSON-lib这个Java类包用于把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean。
下载地址:http://json-lib.sourceforge.net/
还要需要的第3方包:
org.apache.commons(3.2以上版本)
org.apache.oro
net.sf.ezmorph(ezmorph-1.0.4.jar)
nu.xom
1、List
Java代码
boolean[] bool ......
很久没上来了,发现虽然资料和书看的很多,但是很久没碰的东西还是很容易淡忘。以后希望能多记录吧。
今天玩了把线程池,并对其中的参数做了一些调整,并记录在多并发情况下线程数对各种情况的反应。程序是网上找的,并作了稍微修改。
java的线程池实现,ThreadPool
package net.zj.hz.yk.thr ......
java中字符串和整型之间的转化
1)如何将字符串转化为整型;
int i = Integer.parseInt(String str);
int i = Integer.valueOf().intValue();
注:Integer.parseIn 和 Integer.valueOf 不同,前者生成的是整型,而后者是一个对象,所以要通过intValue()来获得对象的值;
&nb ......