2012-04-18 22 views
0

我經歷了與JSTL和arrayList相關的所有帖子,仍然找不到解決方案。<c:foreach>不被識別! 。 JSP中的ArrayList迭代

我一直在嘗試使用taglib在jsp文件上迭代ArrayList。 我在我的構建路徑中包含了最新的jstl 1.2 jar。 已經正確配置了taglib。

但仍得到一個錯誤盈它採用

<c:forEach> 

標記線。 它說

<c:foreach>not recognized!, 

是它顯示在一個的forEach 'E' 的錯誤!

請在下面找到我的代碼。

控制器代碼:

List<String> rolesList = new ArrayList<String>(); 
    rolesList.add(ga.getAuthority()); 

JSP代碼:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 

    <select> 
     <c:forEach items="${rolesList}" var="role"> 
      <option>${role}</option> 
     </c:forEach> 
    </select> 
+0

您正在使用哪個服務器?這在舊服務器版本中不起作用。 – 2012-04-18 05:51:09

+1

閱讀本http://www.coderanch.com/how-to/java/JstlTagLibDefinitions – 2012-04-18 06:11:24

+0

我使用Tomcat 7 @HardikMishra:我添加的jar的兩個新版本在該鏈接中提到。 Does not'seem to solve the problem – Napster 2012-04-18 06:33:03

回答

0

你有在運行時類路徑的JSTL 1.2罐子?這就是它的重要地位!

+0

我仍然是一名新秀,如果你能詳細說明,那將是非常棒的。 我已經包括它作爲構建路徑我與其他罐子像春天沿外部罐子,休眠等,是否有一個地方我應該放棄這個罐子JSTL另一個地方? – Napster 2012-04-18 08:41:57

+0

如果您的構建工具構建了適當的戰爭,那麼您應該在war文件內的lib文件夾中找到它。戰爭文件是一個壓縮文件,所以任何壓縮文件實用程序將能夠打開讓你看看裏面。總是可以選擇將文件的副本放在應用程序服務器的lib文件夾中。如果您使用的是Tomcat,您可以在Tomcat文件夾的頂層找到它。 – 2012-04-18 13:25:02

+0

我得到了RUNTIME類路徑現在的意思。感謝解釋@Tommy B JSTL 1.2 jar在裏面,但問題仍然存在 – Napster 2012-04-19 10:14:50

0

我也面臨同樣的問題時,我包括在JSP中的JSF

然後我下載最新JSTL罐子,包括項目的lib內,

下面的代碼然後添加在頭

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

和將$改爲#因爲它在運行時不可見陣列列表,我改變了你的代碼對我的工作

你的代碼

<select> 
     <c:forEach items="${rolesList}" var="role"> 
      <option>${role}</option> 
     </c:forEach> 
</select> 

我變成

<select> 
     <c:forEach var="list" items="#{Test.rolesList}" var="role"> 
      <option>${list.role}</option> 
     </c:forEach> 
</select> 

注: 測試是在後面豆代碼Managedbean @ManagedBean(name="Test")

謝謝

+0

至於使用'#{}'而不是'$ {}',OP沒有' t似乎表明他正在使用JSF的任何地方。 – BalusC 2012-11-07 19:46:56

0

我已經包含了最新的JSTL 1.2 jar在我的構建路徑。

這不是完全正確的方法。

假設您正在使用Eclipse,應該將JAR文件放在項目的/WEB-INF/lib文件夾中。真的沒有什麼需要做的。您無需在項目的屬性中撥動Build Path。你應該撤消你在那裏所做的一切,試圖「修復」這個問題。

如果你真的堅持在具有項目的/WEB-INF/lib夾以外的JAR出於某種原因,那麼你不應該編輯構建路徑財產,而是將部署大會財產。這會照顧的JAR也實際上在構建和部署WAR的/WEB-INF/lib結束。