Custom 제작시 EL을 처리하도록 지원하는 클래스는 ExpressionUtil 또는 ExpressionEvaluatorManager이다.
1. 입력값으로 null을 허용하지 않는 attribute에 대한 EL처리 org.apache.taglibs.standard.tag.el.core.ExpressionUtil 을 사용 한다. JSTL의 out tag 소스를 살펴보면 다음과 같은 부분이 있다 .
this.value = ExpressionUtil.evalNotNull(
"out", // 태그명 <c:out 이니까 out
"value", // 속성명
value, // EL속성으로 넘어온 값(EL표현식)
Object.class, // 반환될 값으로 기대되는 클래스타입
this,
pageContext);
2. 입력값으로 null을 허용하는 attribute에 대한 EL처리
org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager 사용
JSTL의 if tag의 소스중에는 다음과 같은 부분이 있다.
Object r = ExpressionEvaluatorManager.evaluate(
"test", // 속성명
test, // EL속성으로 넘어온 값(EL표현식)
Boolean.class, // 반환될 값으로 기대되는 클래스타입
this,
pageContext);


댓글