Скомпилировать пользовательский обработчик тегов JSP
package com.mytag.tags;
import java.util.Date;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
public class MyTagHandler extends SimpleTagSupport{
public int doStartTag() throws JspException {
JspWriter out=pageContext.getOut();
try{
out.print(new java.util.Date());
}catch(Exception e){System.out.println(e);}
return SKIP_BODY;
}
}
Необходимо скомпилировать этот пользовательский обработчик тегов JSP без использования какой-либо IDE. Может кто-нибудь, пожалуйста, укажите, как его скомпилировать, я попробовал javac -cp "C: \ Users \ dell \ Desktop \ jst l2 \ WEB-INF \ lib \ javax.servlet.jsp.jstl-1.2.1.jar;" MyTagHandler.java это не работает
1 ответ
Этот код не является JSTL вообще. Этот код является пользовательским тегом JSP. JSTL - это те теги, которые вы импортируете в JSP через http://java.sun.com/jsp/jstl/*
URI пространства имен, такой как <c:xxx>
,<fmt:xxx>
и т. д. JSTL не представляет "пользовательских обработчиков тегов JSP". Чтобы узнать больше о том, что такое JSTL, перейдите на нашу вики-страницу JSTL.
Что касается вашей конкретной проблемы, вам просто нужно иметь JSP API в classpath времени выполнения. На это уже должны указывать имена пакетов импорта:javax.servlet.jsp.*
, Вы не импортировалиjavax.servlet.jsp.jstl.*
в любом месте, поэтому JAR-файл JSTL API не требуется.
Обычно вы найдете JAR-файл JSP API в папке library/module целевого сервера. Тот факт, что вы вручную поместили JSTL в/WEB-INF/lib
Папка предполагает, что вы не нацелены на настоящий сервер Java EE, такой как WildFly, TomEE и т. д., а на пустой контейнерный сервлет-контейнер, такой как Tomcat. Поэтому я возьму Tomcat в качестве примера. Вы можете найти API JSP в /lib
папка установки Tomcat.
Предполагая, что Tomcat установлен (разархивирован) вC:\Java\apache-tomcat-8.0.33
Вот правильная команда для компиляции собственного обработчика тегов JSP:
javac -cp "C: \ Java \ apache-tomcat-8.0.33 \ lib \ jsp-api.jar" com / mytag / tags / MyTagHandler.java
Обратите внимание, что при этом появляется ошибка компиляции "not find symbol", но эта часть совершенно не связана с заданным вопросом. Чтобы устранить новую ошибку компиляции, перейдите к разделу Что означает ошибка компиляции "Не удается найти символ"?