문제
JSP 및 서블릿 개발부터 시작하여 JSP 페이지에 삽입 할 Bodyless 사용자 정의 태그에 문제가 있습니다.
수행 된 단계 :
- CustomTag.java를 성공적으로 작성하고 편집했습니다 (확장
TagSupport
) 안에WEB-INF/classes
예배 규칙서; - 매우 간단한 예제와 함께 TLD 파일을 정의했습니다.
<body-content>
와 함께empty
몸이없는 태그의 값; - Taglib 지시문이 내를 가리키는 JSP 페이지의 태그를 사용했습니다.
/WEB-INF/tlds/site.tld
파일.
이 모든 것을 염두에두고 Tomcat이 다음과 같은 오류를 보내는 이유에 대한 단서가 있습니까?
CustomTag는 유형으로 해결할 수 없습니다
답변에 미리 감사 드리며 자세한 내용이 필요한지 문의하십시오.
내 TLD 파일은 다음과 같습니다.
<?xml version="1.0" encoding="ISO-8859-1"?>
< ! DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>customlib</short-name>
<description>Custom library.</description>
<tag>
<name>header</name>
<tag-class>HeaderTag</tag-class>
<body-content>empty</body-content>
<description>...</description>
</tag>
</taglib>
JSP 파일 :
<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
<%@ taglib uri="/WEB-INF/tlds/customlib.tld" prefix="clib" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>title</title>
</head>
<body>
<clib:header />
</body>
</html>
Headertag 클래스 :
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;
import java.io.IOException;
public class HeaderTag extends TagSupport {
public int doEndTag() throws JspTagException {
try {
pageContext.getOut().print("<p>header</p>");
}
catch (IOException e) {
throw new JspTagException("Error.");
}
return EVAL_PAGE;
}
}
해결책
당신은 재건하고 재배치 했습니까, 맞습니까? 이 경우 가장 좋은 추측은 당신이u003Ctag-class> TLD 파일의 지침.
<tag>
<name>cookieIterator</name>
<tag-class>util.infoTemplates.CookieIterator</tag-class>
<body-content>JSP</body-content>
</tag>
원인이 아닌 경우 TLD 파일과 예제 JSP를 게시하십시오.
편집 : 모든 태그 클래스에는 패키지가 있어야합니다. JSP 2.0 사양에 따라 (섹션 JSP 11.2) :
JSP 2.0 기준으로, 이름이없는 (일명 기본값) 패키지의 클래스를 참조하는 것은 불법입니다.
제휴하지 않습니다 StackOverflow