struts中tdl檔案的引入方式

2021-05-26 10:10:32 字數 2597 閱讀 9193

很明顯示是因為標籤庫的問題,index.jsp 中使用了 logic 標籤,引入標籤是這樣寫的:

<%@tagliburi=""prefix="logic"%> 

對於這個問題,我這邊是因為 logic.tld 損壞,偶然用 eclipse3.2+myeclipse5.0 開啟這個檔案,發現不能正常顯示要,關閉再次開啟,又沒問題了,儲存它,替換掉伺服器上的這個檔案,執行正常。難道我在訪問 index.jsp 時也是有時候能正常解析 logic.tld 檔案,有時候又不行,讀入 logic.tld 配置也應該是一次性完成啊。

下面敘述我對這個問題尋求解決的過程。

怎麼會找不到標籤呢,在 web.xml 中沒有關於 taglib 的配置,這也是可行的,在 web-inf 下有相應的 struts-logic.tld 檔案啊,只要該標籤說明檔案中的uri屬性說明是 就行。

為什麼有時是好的,有時又有問題呢?要是總是出錯還說得過去。

於是在網上大搜了一把,有許多解釋使用 jstl 標籤庫時會出現類似的錯誤。

有說要放在支援 servlet 2.4 規範的容器中執行,那不可能,原來我這個 web 應用在 was 5.1 下跑得好好的啊,was5.1 也只支援 servlet 2.3 規範。

有說必須在 web.xml 檔案中配置標籤庫說明,比如:

<taglib>

<taglib-uri>/web-inf/struts-logic.tld</taglib-uri> <taglib-location>/web-inf/struts-logic.tld</taglib-location> </taglib>

那也是用不著的,因為我在 eclipse3.2+myeclipse5.0 下建乙個 web 應用,都不需要這樣配置都可以正常使用 logic 標籤。

還有說應把 struts-logic.tld 拷貝到 web-inf 目錄中,也不一定,這樣做只是基於上面那種 web.xml 配置方式才需要的,我自己實驗的 web 應用,只需要引入 struts.jar 就行,在 web-inf 都不要放置 struts 的 tld 檔案。

因為 web-inf 下可以不要 tld 檔案,web.xml 中也可以不用 taglib 的配置,只要在 jsp 檔案中用**

<%@tagliburi=""prefix="logic"%> 

引入 logic 標籤就能使用它了,為此還琢磨了一下,應用是如何載入標籤描述的。開啟 struts.jar 包發現在 meta-inf.tlds 中有 strtus-logic.tld 檔案,並且屬性uri,可見 jsp檔案就是通過這個uri在struts.jar的適當地方定位哪個標籤庫實現的。只要 jsp 中和 tld 中的uri屬性一致即可。

而在 web.xml 配置

<taglib>

<taglib-uri>/web-inf/struts-logic.tld</taglib-uri>

<taglib-location>/web-inf/struts-logic.tld</taglib-location>

</taglib>

卻給自己添更多麻煩了,首先需要從 struts.jar 解出 tld 檔案放到 web-inf 下,在 jsp 檔案中引入 taglib 要寫成與在 web.xml 中配置的uri一致了,如:

<%@tagliburi="/web-inf/struts-logic.tld"prefix="logic"%>

通過這一問題的解決過程,也加深了jsp自定義標籤庫的兩種配置方法:

1. 把 tld 檔案放在 jar 包的 meta-inf.tlds (web-inf/classes/目錄的 meta-inf.tlds 目錄中應該也行),jsp 檔案引入標籤庫時用與 tld 檔案中一樣的 uri。

2. 把 tld 檔案放在某個地方,一般是 /web-inf/ 目錄下,然後在 web.xml 中自定義出乙個 taglib-uri 屬性,jsp 檔案引入標籤庫時就用這個配置的 uri 屬性。

spring中引入其他檔案

剛開始學習spring 以及springmvc mybatis 框架時能把配置檔案配置能起來就很高興了,但是當時間長了我們發現如果所有的配置都寫在乙個配置檔案中的話會很多,所以看著也痛苦,所以我們可以吧配置檔案分開配置,這樣方便之後查詢,那分開配置的方式有幾種方式那 一 xml引入 1 將配置檔案引...

VS中引入JQuery檔案

下面我們要在vs中引入jquery檔案,首先要找到需要引入的檔案 jquery 1.12.4.js 將其引入在專案中也非常簡單,只需要拖動檔案即可。將檔案引入在專案中之後還需要再做乙個判斷,判斷該檔案是否引入成功。判斷jquery是否引入成功可以用if undefined 在這個判斷中我設定了乙個彈...

python中跨檔案引入 py檔案

在本地可以通過在pycharm裡將檔案目錄調整為sources root實現。但在伺服器裡,需要通過如下方式跨檔案呼叫.py檔案。程式結構如下 src mod1.py test1.py 若在程式test1.py中匯入模組mod1,則直接使用 import mod1 或from mod1 import...