2012-10-10 2 views
3

정말 간단합니다. 이전에 해본 적이 없지만 뭔가 빠져 있어야합니다.jstl 태그가 jar에서 다시 사용

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%> 
<%@ attribute name="path" type="java.lang.Object" rtexprvalue="true" required="true"%> 
<%@ attribute name="l10nprefix" type="java.lang.String" required="false"%> 
<%@ attribute name="cssClass" type="java.lang.String" required="false"%> 
...a bunch of code... 
<form:select path="${path}" cssClass="${cssClass}"> 
...some more of code... 
</form:select> 

그리고 지금 나는 다양한 프로젝트에서 참조 할 수 있도록 (항아리 생각을) 공유 위치에 넣을 : 이하 생략 -

은이 같은 작업 JSTL 태그가 있습니다. 그래서 나는 다른 taglib처럼 그것을 참조 할 수 있습니다.

당신이 자바 클래스를 쓰고있는 것을 볼 수 있습니다. javax.servlet.jsp.tagext.SimpleTagSupport (그리고 나는 다른 클래스가 어떤 것을 언급 한 것을 보았습니다. 올바른 위치에 .tld 파일을 만들 정도로 간단합니다.

그러나 표준 jstl 태그 코드를 다시 사용할 수는 없습니다. 하나 있습니까?

클래스 파일에 jstl 태그 코드를 컴파일하는 tomcat에 대한 내용을 읽었습니다. 아마도 그때 생성 된 클래스를 .tld 파일에서 참조 할 수 있습니다. 그러나 빌드에서이를 찾아서 캡슐화하는 것은 약간 어수선하게 보입니다. Java에서 모든 코드를 다시 작성하고 완료하는 것이 좋지만 다음 번에는 더 복잡한 코드 일 때 어떤 일이 발생합니까? "항아리에 태그 파일"에 대한 인터넷 검색을

답변

0

말한다이 Oracle documentation, 리드 :

태그 파일이에 설치된 JAR 파일에서/META-INF/태그/디렉토리에 포장 될 수있다/WEB-INF/lib/웹 응용 프로그램의 디렉토리. 태그는 일반적으로 웹 응용 프로그램에서 쉽게 사용할 수있는 재사용 가능한 태그 라이브러리의 일부입니다 ( ).

JAR에 번들 된 태그 파일에는 태그 라이브러리 디스크립터가 필요합니다. JAR에 표시되지만 TLD에 정의되지 않은 태그 파일은 웹 컨테이너에서 무시됩니다. 태그가 사용자 정의 JSP 태그, 아닌 JSTL 태그입니다

참고. JSTL은 JSP 표준 태그 라이브러리이며 사용자 정의 태그는이 표준 라이브러리의 일부가 아닙니다.