'el'에 해당되는 글 5건
- 2011.07.22 web.xml 에 EL 사용하기 4
- 2009.08.06 EL이 안되는 경우
- 2009.07.26 Java EE 5 스펙에서 JSTL 구현
- 2009.07.19 JSP 2.0 EXPRESSION LANGUAGE
- 2009.06.11 JSTL 비교 연산자
- web.xml 에 EL 사용하기
- 日常茶飯事
- 2011. 7. 22. 00:04
시스템 프로퍼티를 web.xml 에서 EL 로 사용 가능하다.
동일한 소스를 사용하는 2대의 서버에서 처리한 예
- 요구사항
대외계에서는 security_outer.xml 을 로드하고 세션타임아웃을 30분으로 설정한다.
내부 시스템에서는 security_inner.xml 을 로드하고 세션이 끊기지 않도록 설정한다.
환경에 따라 web.xml 을 변경하지 않고 각 환경에 맞게 적용할 수 있다.
- env.type 이 outer 인 경우 세션 타임아웃을 별도로 지정하지 않아도 30분으로 설정하고 싶은데 web.xml 에서 논리 표현을 지원하지 않는다.
(Resin 설정 파일에서는 가능함)
동일한 소스를 사용하는 2대의 서버에서 처리한 예
- 요구사항
대외계에서는 security_outer.xml 을 로드하고 세션타임아웃을 30분으로 설정한다.
내부 시스템에서는 security_inner.xml 을 로드하고 세션이 끊기지 않도록 설정한다.
환경에 따라 web.xml 을 변경하지 않고 각 환경에 맞게 적용할 수 있다.
java -cp ... -Denv.type=outer -Dsession.timeout=30 xxx.HttpServer
java -cp ... -Denv.type=inner -Dsession.timeout=-1 xxx.HttpServer
java -cp ... -Denv.type=inner -Dsession.timeout=-1 xxx.HttpServer
- env.type 이 outer 인 경우 세션 타임아웃을 별도로 지정하지 않아도 30분으로 설정하고 싶은데 web.xml 에서 논리 표현을 지원하지 않는다.
(Resin 설정 파일에서는 가능함)
- EL이 안되는 경우
- 日常茶飯事
- 2009. 8. 6. 21:45
필요한 라이브러리(jstl.jar, standard.jar) 모두 넣었음.
Tomcat 5.5 환경에서 EL이 안됨
혹시나 해서 isELIgnored를 false로 두니깐 된다.
그런데 왜 C사 박모씨 개발환경에서만 이럴까?
그리고 el-enabled 속성은 없다.
스펙에도 없는데 왜 많은 사이트에서 이 속성을 언급하는지 모르겠다.
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
http://java.sun.com/xml/ns/j2ee/jsp_2_0.xsd
Tomcat 5.5 환경에서 EL이 안됨
혹시나 해서 isELIgnored를 false로 두니깐 된다.
그런데 왜 C사 박모씨 개발환경에서만 이럴까?
그리고 el-enabled 속성은 없다.
스펙에도 없는데 왜 많은 사이트에서 이 속성을 언급하는지 모르겠다.
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
http://java.sun.com/xml/ns/j2ee/jsp_2_0.xsd
<xsd:element name="el-ignored"
type="j2ee:true-falseType"
minOccurs="0">
<xsd:annotation>
type="j2ee:true-falseType"
minOccurs="0">
<xsd:annotation>
- Java EE 5 스펙에서 JSTL 구현
- 日常茶飯事
- 2009. 7. 26. 09:00
- Geronimo의 배신: GlassFish JSTL 1.2와 Apache Geronimo 2.0 통합 패키지 사용하기 (한글)
- JSF와 JSP 1.2
JSF 1.0에서는 JSTL의 EL과 비슷하게 동작하는 고유의 EL을 갖고 있으며, 이 때까지는 JSF EL과 JSTL EL은 호환성이 없었다.
- 통합 표현식 언어(Unified expression language)
자바 EE 5에서는 JSTL과 JSF의 EL이 합쳐져 JSTL과 JSF를 혼합해 쓰는 것이 가능해졌다.
- 자바 EE 5의 일부로서 EL
J2EE 1.4 스펙까지는 JSTL 구현이 필수 사항이 아니었지만 자바 EE 5 스펙에서는 JSTL 구현이 필수 사항이다.
- 제로니모와 글래스피시 JSTL
아파치 제로니모 개발자들은 자바 EE 5 구현체인 제로니모 2.0을 만들 때, JSTL 구현체를 포함해야만 했다.
통합 표현식 언어는 JSTL 구현체의 주요 요구사항이었지만, 많은 JSTL 구현체는 JSF와 함께 동작할 수 없어서 기존 구현체 중에서 선택할 수 없었다.
다행히도 제로니모 팀은 직접 JSTL과 통합 표현식 언어 구현체를 만드는 대신 썬의 글래스피시를 활용할 수 있었다.
글래스피시는 자바 EE 5 스펙을 위한 썬의 참조 구현체다.
- JSF와 JSP 1.2
JSF 1.0에서는 JSTL의 EL과 비슷하게 동작하는 고유의 EL을 갖고 있으며, 이 때까지는 JSF EL과 JSTL EL은 호환성이 없었다.
- 통합 표현식 언어(Unified expression language)
자바 EE 5에서는 JSTL과 JSF의 EL이 합쳐져 JSTL과 JSF를 혼합해 쓰는 것이 가능해졌다.
- 자바 EE 5의 일부로서 EL
J2EE 1.4 스펙까지는 JSTL 구현이 필수 사항이 아니었지만 자바 EE 5 스펙에서는 JSTL 구현이 필수 사항이다.
- 제로니모와 글래스피시 JSTL
아파치 제로니모 개발자들은 자바 EE 5 구현체인 제로니모 2.0을 만들 때, JSTL 구현체를 포함해야만 했다.
통합 표현식 언어는 JSTL 구현체의 주요 요구사항이었지만, 많은 JSTL 구현체는 JSF와 함께 동작할 수 없어서 기존 구현체 중에서 선택할 수 없었다.
다행히도 제로니모 팀은 직접 JSTL과 통합 표현식 언어 구현체를 만드는 대신 썬의 글래스피시를 활용할 수 있었다.
글래스피시는 자바 EE 5 스펙을 위한 썬의 참조 구현체다.
- JSP 2.0 EXPRESSION LANGUAGE
- 日常茶飯事
- 2009. 7. 19. 19:53
http://blog.sdnkorea.com/blog/272
- "." 와 [] 연산자 비교
- []에 EL변수 사용가능
- 디폴트 값 정의하기
- forEach구문에서 Map 사용하기
JSTL태그 forEach를 이용할 때, 반복 변수(iteration)는 java.util.Map.Entry 타입이다.
Map에 들어있는 데이터에 접근하려면 Entry#key 와 Entry#value를 사용하면 된다.
- "." 와 [] 연산자 비교
${header["host"]} localhost:8080
${header.host} localhost:8080
${header["user-agent"]} Mozilla/5.0 (Macintosh;...)
${header.user-agent} 0 //마이너스 연산을 한다.
${header.host} localhost:8080
${header["user-agent"]} Mozilla/5.0 (Macintosh;...)
${header.user-agent} 0 //마이너스 연산을 한다.
- []에 EL변수 사용가능
<c:set var="headerName" value="host"/>
${header[headerName]}
${header[headerName]}
- 디폴트 값 정의하기
<c:out value="${colors[1024]}" default="transparent"/>
${colors[1024] == null ? "transparent" : colors[1024]}
${colors[1024] == null ? "transparent" : colors[1024]}
- forEach구문에서 Map 사용하기
JSTL태그 forEach를 이용할 때, 반복 변수(iteration)는 java.util.Map.Entry 타입이다.
Map에 들어있는 데이터에 접근하려면 Entry#key 와 Entry#value를 사용하면 된다.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
java.util.Map map = new java.util.HashMap();
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
map.put("4", "d");
pageContext.setAttribute("map", map);
%>
<c:forEach var="data" items="${map}">
${data.key}=${data.value}<br>
</c:forEach>
<hr>
${map["4"]}<br>
${map.4}<br> //EXCEPTION
<hr>
<c:forEach var="hdr" items="${header}">
${hdr.key}=${hdr.value}<br>
</c:forEach>
<hr>
<c:forEach var="cookieVal" items="${cookie}">
${cookieVal}<br>
</c:forEach>
<%
java.util.Map map = new java.util.HashMap();
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
map.put("4", "d");
pageContext.setAttribute("map", map);
%>
<c:forEach var="data" items="${map}">
${data.key}=${data.value}<br>
</c:forEach>
<hr>
${map["4"]}<br>
${map.4}<br> //EXCEPTION
<hr>
<c:forEach var="hdr" items="${header}">
${hdr.key}=${hdr.value}<br>
</c:forEach>
<hr>
<c:forEach var="cookieVal" items="${cookie}">
${cookieVal}<br>
</c:forEach>
- JSTL 비교 연산자
- 日常茶飯事
- 2009. 6. 11. 14:10
- 테스트환경 1
잘모름
- 테스트환경 2
Apache Tomcat/5.5.9
standard-taglib 1.1.2
- empty 연산자는 test 가 없는 경우 참이다.
- Map, List, 배열이 비어 있는 경우에도 참이다.
[todo] 다른 구현체에서도 해볼 것.(resin, glassfish...구현체 확인해 둘것)
잘모름
- 테스트환경 2
Apache Tomcat/5.5.9
standard-taglib 1.1.2
- empty 연산자는 test 가 없는 경우 참이다.
- Map, List, 배열이 비어 있는 경우에도 참이다.
[todo] 다른 구현체에서도 해볼 것.(resin, glassfish...구현체 확인해 둘것)
- 테스트환경 2에서 추가 [본문으로]
- 테스트환경 2에서 추가 [본문으로]
- An exception occured trying to convert String " " to type "java.lang.Long" [본문으로]
- 테스트환경 1 [본문으로]
- 테스트환경 2, An exception occured trying to convert String "null" to type "java.lang.Long" [본문으로]
- An exception occured trying to convert String "null" to type "java.lang.Long" [본문으로]
- An exception occured trying to convert String " " to type "java.lang.Long" [본문으로]
Recent comment