2013-12-20 19 views
1

我是struts的新手,所以這可能是我面臨的一個基本概念問題。如何訪問scriptlet中的struts標籤庫ID

我有訪問的ID內的小腳本代碼:

<%@ taglib uri="/WEB-INF/tlds/copytag.tld" prefix="util" %> 
... 
... 
<util:copyTag id="tablebuffer" > 
.... 
</util:copyTag> 

<% 
     Hashtable h=new Hashtable(); 
     String Key = "key1"; 
     h.put(Key,tablebuffer); 
%> 

當使用日食此代碼,行​​給出了一個紅色標記與彈出的文本:

Multiple annotations found at this line: 
    - tablebuffer cannot be resolved to a 
    variable 
    - tablebuffer cannot be resolved to a 
    variable 

是它可以使用ID作爲變量,還是有其他方式來做到這一點。其實我得到這個代碼,並告訴代碼工作正常。但是,當我在Eclipse中配置代碼時,我正面臨着上述問題。

請幫我解決這個問題。

回答

2

唯一可能的答案是:

  1. 決不使用小腳本了:they're a bad practice
  2. 從不不再使用Struts1:it is EOL

的Apache Struts 1裏結束生命(EOL)公告

Apache的Struts的項目組想告訴你,在Struts 1.x的Web框架已達到其壽命的終結,是不再正式支持。

[...]

我們計劃啓動基於Struts 1.我們還可以這樣做一個新的項目?

基本上是的,但我們不會推薦這樣做。只要沒有代碼行寫這是很容易的,如果你開始新的東西在概念選擇替代Web框架如Struts 2

另外,Struts 2的是更簡單,更強大...真的, (而不是維護一個龐大的S1項目),切換到它或替代方案(JSF 2,Spring MVC等)

+1

另請閱讀:http://stackoverflow.com/a/20582406/1654265 –

+0

感謝您的答覆。我會用struts2,但是項目是用struts 1開發的,我需要修改它的一個模塊。如果你能在給定的背景下提出解決上述問題的解決方案,那將是一個很大的幫助。 –

+1

好的,那麼你不得不使用Struts1,但不是強制使用Scriptlets; ** JSTL **在那裏可以幫助您,嘗試對您正在使用的現有零件進行小型重構。我很抱歉,這個錯誤對我來說並沒有什麼意義,但也許它會消失,或者它會變得更加冗長,只需使用上述標記庫而不是scriptlet。 –