2012-02-03 29 views
0

在我的jsp中,我使用了4個標籤庫。聲明是:如何讓多個JSP標籤庫使用相同的前綴?

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> 
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> 
<%@ taglib prefix="cms" uri="/WEB-INF/tags/cms/tag.tld"%> 

它們每個都有一個唯一的前綴。

但我想用他們所有的一個前綴,所以我將其更改爲:

<%@ taglib prefix="cms" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@ taglib prefix="cms" uri="http://java.sun.com/jsp/jstl/functions"%> 
<%@ taglib prefix="cms" uri="http://java.sun.com/jsp/jstl/fmt"%> 
<%@ taglib prefix="cms" uri="/WEB-INF/tags/cms/tag.tld"%> 

它報告的錯誤。

有沒有辦法做到這一點?

+0

顯然違反了關注點分離的。非常糟糕的做法。 – 2012-02-03 13:05:15

回答

1

標籤庫描述下的每個taglib指令進口標籤稱爲TLD頂級域名將有一組標籤,標籤名稱爲。這裏的標籤名稱並不是普遍唯一的。 兩個頂級域名可以有相同名稱的標籤。這就是爲什麼頂級域名的有命名空間是什麼,但TLD URI(http://java.sun.com/jsp/jstl/core,http://java.sun.com/jsp/jstl/functions,...)。

因此,在使用任何標籤時,應清楚地告知哪個TLD必須加載標籤。而且,因爲它是困難的,不是每readble標記之前把它的URL,我們給別名的URI前綴的標記庫指令幫助。

這就是這個原因你不能有多個TLD的相同的前綴。

+0

看來我必須創建我自己的tld文件,並將它們結合在一起。 – Freewind 2012-02-03 09:27:09

1

你不能有相同的標記前綴在同一個JSP兩個不同的標籤庫。標記前綴將指定JSP要使用的標記庫以及從那裏使用哪個類文件。爲標籤。

每個標籤庫應該有不同的標記前綴。