2013-10-31 77 views
1

我想在JavaScript中使用JSTL庫。我可以使用JSTL在JavaScript中使用foreach標籤選擇標籤嗎?

我的代碼如下。

<script type="text/javascript"> 
var grid_data = 
[ 
<c:forEach items="${LIST}" var="list" varStatus="status">    
<c:if test="${ status.index == 0 }"> 
{id:'${list.NOTICE_ID}'} 
</c:if> 
</c:forEach> 
]; 
</script> 

此代碼運行良好,但它不適用於選擇標籤。
有什麼特別的原因嗎?有誰能夠幫助我?

// Syntax error on tokens ** especially in script not in html body ** 
<script type="text/javascript"> 
var grid_data = 
[ 
<c:forEach items="${LIST}" var="list" varStatus="status">    
<c:choose> 
<c:when test="${ status.index == 0 }"> 
{id:'${list.NOTICE_ID}'} 
</c:when> 
<c:otherwise> 
, {id:'${list.NOTICE_ID}'} 
</c:otherwise> 
</c:choose> 
</c:forEach> 
] 
</script> 

enter image description here

+0

定義 「它不工作」。怎麼了? ''在哪裏?在這兩種情況下產生了什麼? –

+0

抱歉有編輯錯誤。我添加了標記。 「它不工作」意味着有錯誤。 - 「令牌語法錯誤,刪除這些令牌。」 – user2940817

回答

0

不能幫助你的選擇標籤 - 這個當前的代碼片段不能工作(缺少結束標記)。如何在jstl foreach omit an element in last record中描述的每個列表的最後一個元素之後添加逗號?

+0

謝謝kojotak!但仍然在腳本中的錯誤(而不是在HTML體)。 – user2940817

+0

這看起來像IDE配置問題 - 您使用哪一個Eclipse?你的文件是混合使用javascript和JSTL循環的'.jsp'或'.js'嗎? – Kojotak

2

這些錯誤都是由Eclipse發出的錯誤信息,因爲Eclipse在與JSP代碼混合時無法正確驗證JavaScript代碼語法。

部署JSP,運行它並查看它在執行時是否實際工作。它可能會運行良好。

+0

感謝nizet。它運作良好! – user2940817

0

以下方法可以幫助避免在eclipse難看錯誤:

  1. 設置一個變量,如下所示那樣:

    <c:set var="newVariable"> 
    { 
    <c:forEach var="entry" items="${variableFromServerAsMap}" varStatus="status"> 
        "<c:out value='${entry.key}'/>" : "<c:out value='${entry.value}'/>}"<c:if test="${not status.last}">,</c:if> 
    </c:forEach> 
    }; 
    

  2. ,並在使用newVariable可變javascript部分,如下所示:

    <script type="text/javascript"> 
        var my_js_data = <c:out value="${newVariable}" escapeXml="false"/> 
    </script> 
    

輸出應類似於以下內容:

<script type="text/javascript"> 
    var my_js_data = { 

      "some_param_key" : "some_param_value", 
      "some_param_key_2" : "some_param_value_2", 

    }; 
</script> 
相關問題