'taglib'에 해당되는 글 2건
- 2011.11.24 [EP] JSTL(Apache Taglibs 1.0) 사용하기 1
- 2009.08.06 태그라이브러리 URI
- [EP] JSTL(Apache Taglibs 1.0) 사용하기 1
- 日常茶飯事
- 2011. 11. 24. 21:00
- 환경
- JSTL (Apache Taglibs 1.0 구현체)을 사용하려고 함.
Tomcat 4, 5에서는 예제(standard-examples.war)가 잘 동작함.
- jstl.jar, standard.jar를 PORTAL-INF/lib/에 넣는다.
test.jsp
tld 파일을 여기저기 넣어 보고 uri를 바꿔봐도 안됨.
(JSPCompiler를 디컴파일해서 uri를 어떻게 찾는지 보려고 했는데 어디에 있는지 찾지를 못했다.)
- htmlb를 사용하는 글을 보고 tld를 설정함.
portalapp.xml PORTAL-INF/taglib/에 c.tld를 넣는다.
test.jsp taglib 선언은 되는데 실제 사용할 때 에러가 발생한다.
- SAP NetWeaver 04, 7.1이 JSP 1.2를 지원하지 않는다고 함.
javax.servlet.jsp.JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion()의 리턴값은 1.2인데...
- 커스텀 태그라이브러리를 작성해 보니 JSP 1.1 형식으로는 가능
Taglibs의 c.tld를 1.1형식으로 변경하면 가능할 거 같다.
ServerInfo : SAP J2EE Engine/7.00
Servlet : 2.3
JSP : 1.2
web.xml 을 수정할 수 없음.Servlet : 2.3
JSP : 1.2
- JSTL (Apache Taglibs 1.0 구현체)을 사용하려고 함.
Tomcat 4, 5에서는 예제(standard-examples.war)가 잘 동작함.
- jstl.jar, standard.jar를 PORTAL-INF/lib/에 넣는다.
test.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
com.sapportals.portal.prt.servlets_jsp.server.jsp.ParseException: Error in parsing taglib 'http://java.sun.com/jstl/core' tag in web.xml or .tld file of the taglib library.
at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.JspTaglibDirective.verifyAttributes(JspTaglibDirective.java:189)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.JspDirective.parse0(JspDirective.java:162)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.JspDirective.parse(JspDirective.java:117)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.ElementCollection.parse(ElementCollection.java:86)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.ParserImpl.parse(ParserImpl.java:595)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:2170)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.compile(JSPCompiler.java:81)
...
at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.JspTaglibDirective.verifyAttributes(JspTaglibDirective.java:189)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.JspDirective.parse0(JspDirective.java:162)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.JspDirective.parse(JspDirective.java:117)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.ElementCollection.parse(ElementCollection.java:86)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.ParserImpl.parse(ParserImpl.java:595)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:2170)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.compile(JSPCompiler.java:81)
...
tld 파일을 여기저기 넣어 보고 uri를 바꿔봐도 안됨.
(JSPCompiler를 디컴파일해서 uri를 어떻게 찾는지 보려고 했는데 어디에 있는지 찾지를 못했다.)
- htmlb를 사용하는 글을 보고 tld를 설정함.
portalapp.xml PORTAL-INF/taglib/에 c.tld를 넣는다.
test.jsp taglib 선언은 되는데 실제 사용할 때 에러가 발생한다.
com.sapportals.portal.prt.servlets_jsp.server.jsp.ParseException: java.lang.NullPointerException
at com.sapportals.portal.prt.servlets_jsp.server.jsp.TagBeginGenerator.init(TagBeginGenerator.java:148)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.xmlsyntax.CustomJspTag.action(CustomJspTag.java:114)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.ElementCollection.action(ElementCollection.java:47)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:2170)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.compile(JSPCompiler.java:81)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.run(JSPCompiler.java:140)
at com.sapportals.portal.prt.core.broker.JSPComponentItem.compileJSP(JSPComponentItem.java:291)
...
at com.sapportals.portal.prt.servlets_jsp.server.jsp.TagBeginGenerator.init(TagBeginGenerator.java:148)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.xmlsyntax.CustomJspTag.action(CustomJspTag.java:114)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.syntax.ElementCollection.action(ElementCollection.java:47)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:2170)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.compile(JSPCompiler.java:81)
at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.run(JSPCompiler.java:140)
at com.sapportals.portal.prt.core.broker.JSPComponentItem.compileJSP(JSPComponentItem.java:291)
...
- SAP NetWeaver 04, 7.1이 JSP 1.2를 지원하지 않는다고 함.
javax.servlet.jsp.JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion()의 리턴값은 1.2인데...
- 커스텀 태그라이브러리를 작성해 보니 JSP 1.1 형식으로는 가능
Taglibs의 c.tld를 1.1형식으로 변경하면 가능할 거 같다.
- 태그라이브러리 URI
- 日常茶飯事
- 2009. 8. 6. 20:47
TLD 등록 방법
1. TLD 파일 경로를 지정해 준다.
2. 라이브러리 경로를 지정해 준다. META-INF/elf.tld 가 있어야 한다.
3.
web.xml JSP TLD의 uri도 맞추라고 함.
4. JSTL 사용시 web.xml에 등록하지 않아도 되는 이유
/WEB-INF/lib/stardartd.jar/META-INF/c.tld
- 참고 문서
[todo] tld 찾는 순서는 귀찮아서...나중에
1. TLD 파일 경로를 지정해 준다.
2. 라이브러리 경로를 지정해 준다. META-INF/elf.tld 가 있어야 한다.
3.
web.xml JSP TLD의 uri도 맞추라고 함.
4. JSTL 사용시 web.xml에 등록하지 않아도 되는 이유
/WEB-INF/lib/stardartd.jar/META-INF/c.tld
- 참고 문서
- http://jakarta.apache.org/taglibs/site/tutorial.html#Installation_and_Deployment
- JSP best practices: Intro to taglibs
Convert scriptlets to custom tags for better JSP code
[todo] tld 찾는 순서는 귀찮아서...나중에
Recent comment