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;
}
}
需要在不使用任何IDE的情况下编译此自定义JSP标记处理程序。 任何人都可以提一下如何编译它我试过 javac -cp" C:\ Users \ dell \ Desktop \ jst L2 \ WEB-INF \ lib中\ javax.servlet.jsp.jstl-1.2.1.jar;" MyTagHandler.java 它没有工作
答案 0 :(得分:1)
这段代码根本不是JSTL。此代码是自定义JSP标记处理程序。 JSTL是您通过http://java.sun.com/jsp/jstl/*
命名空间URI在JSP中导入的标记,例如<c:xxx>
,<fmt:xxx>
等.JSTL不代表“自定义JSP标记处理程序”。要了解有关JSTL究竟是什么的更多信息,请访问our JSTL wiki page。
至于具体问题,您只需要在运行时类路径中使用JSP API。这应该已经被导入的包名称暗示:javax.servlet.jsp.*
。您没有在任何地方导入javax.servlet.jsp.jstl.*
,因此不需要JSTL API JAR文件。
您通常会在目标服务器的库/模块文件夹中找到JSP API JAR文件。您在/WEB-INF/lib
文件夹中手动放置JSTL这一事实表明您并未针对真正的Java EE服务器(如WildFly,TomEE等),而是以Tomcat等准系统servlet容器为目标。因此,我将以Tomcat为例。您可以在Tomcat安装的/lib
文件夹中找到JSP API。
假设在C:\Java\apache-tomcat-8.0.33
中安装了(解压缩)Tomcat,这是编译自定义JSP标记处理程序的正确命令:
javac -cp "C:\Java\apache-tomcat-8.0.33\lib\jsp-api.jar" com/mytag/tags/MyTagHandler.java
请注意,这会弹出“找不到符号”的编译错误,但该部分与当前要求的问题完全无关。要解决新的编译错误,请转到What does a "Cannot find symbol" compilation error mean?