這一句<%@ taglib prefix="s" uri="/struts-tags" %>就是從地址/struts-tags下面尋找標籤庫,它定義在Struts 2庫文件struts2-core-2.0.11.jar裏面的文件META-INF/struts-tags.tld裏面。
該文件有這麼一段代碼:
<?xml version="1.0" encoding="UTF-8"?>
<!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>2.2.3</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>s</short-name>
<uri>/struts-tags</uri>
....
粗斜體的<uri>/struts-tags</uri>剛好與JSP文件引入taglib聲明裏面的uri屬性匹配,這樣就找到了對應的標籤定義位置了。Tomcat等Web服務器會自動加載所有jar文件下的META-INF子目錄下的.tld標記定義文件,這也是爲什麼好多框架不需要把tld文件複製到WEB-INF。