簡體   English   中英

編譯自定義JSP標記處理程序

[英]Compile custom JSP tag handler

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不起作用

這段代碼根本不是JSTL。 此代碼是自定義的JSP標記處理程序。 JSTL是您通過http://java.sun.com/jsp/jstl/*名稱空間URI在JSP中導入的那些標記,例如<c:xxx><fmt:xxx>等。JSTL不代表“自定義” JSP標記處理程序”。 要了解有關JSTL到底是什么的更多信息,請訪問我們的JSTL Wiki頁面

對於您的具體問題,您只需要在運行時類路徑中具有JSP API。 導入的包名稱已經暗示了這一點: javax.servlet.jsp.* 您沒有在任何地方導入javax.servlet.jsp.jstl.* ,因此JSTL API JAR文件是不必要的。

通常,可以在目標服務器的library / module文件夾中找到JSP API JAR文件。 您手動將JSTL放在/WEB-INF/lib文件夾中的事實表明,您的目標不是真正的Java EE服務器(例如WildFly,TomEE等),而是准系統servlet容器(例如Tomcat) 因此,我以Tomcat為例。 您可以在Tomcat安裝的/lib文件夾中找到JSP API。

假設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

請注意,這將彈出“找不到符號”的編譯錯誤,但是該部分與當前提出的問題完全無關。 為了解決新的編譯錯誤,請轉到“找不到符號”編譯錯誤是什么意思?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM