2014-12-22 183 views
1

我試圖從Struts1的重用一堆的JSP的Struts2的,一些JSP的聲明爲如下標籤庫:遷移的Struts 1個標籤Struts 2的

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> 
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%> 
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> 

當我將其更改爲:

<%@ taglib uri="/struts-tags" prefix="html"%> 
<%@ taglib uri="/struts-tags" prefix="logic"%> 
<%@ taglib uri="/struts-tags" prefix="bean"%> 

我得到一個錯誤:

JSPG0227E: Exception caught while translating /jsp/survey/surveyIdPreview.jsp: /jsp/survey/surveyIdPreview.jsp(27,1) --> JSPG0046E: Unable to locate tagfile for tag html

我使用的是相同的taglib三次的原因是因爲標籤是跨屆灑e JSP和我試圖最小化代碼更改。

這種方法適用於其餘的應用程序,但對於一些頁面我看到上述錯誤。 我無法理解爲什麼Struts2 jar中的TLD對某些頁面不可見。

任何幫助,非常感謝。

回答

1

這3個是針對struts 1標籤的。

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> 
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%> 
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> 

struts 2只使用一個tld,struts-tags.tld。 所以你只能把它聲明爲:

<%@ taglib prefix="s" uri="/struts-tags" %> 

還要確保,你在你的Struts2的核心 - 2.x.x.jar WEB-INF/lib目錄