2008-12-03 57 views
0

我的if語句總是評估爲false並且沒有進入<span>塊因此,我無法獲得「指數」中的if條件,我已經試過每一件事情附加指數以#%。任何人都可以提出解決?沒有從for循環獲取'index'值到JSP中的if循環

<c:forEach var="index" begin="1" end="<%=a%>" step="1"> 
    <s:if test="index == 1"> 
     <span class="currentpage"><b>${page_id}</b></span> 
    </s:if> 
    <s:else> 
     <a href="searchAction.html?page_id=${index}&searchString=${searchString}" class="paginglinks">${index}</a> 
    </s:else> 
</c:forEach> 
+0

您能否告訴我們您正在使用哪個taglib,最好是通過包含聲明? – sblundy 2008-12-03 14:23:51

+0

其 <%@ taglib uri =「/ struts-tags」prefix =「s」%> – 2008-12-03 14:38:19

回答

1

得到它actully它是在標籤的一些衝突

它應該像

<c:forEach var="index" begin="1" end="<%=a%>" step="1" varStatus="status"> 
          <c:choose> 
          <c:when test="${page_id==index}">      
           <span class="currentpage"><b>${page_id}</b></span> 
          </c:when> 
          <c:otherwise> 
          <a href="searchAction.html?page_id=${index}&searchString=${searchString}" class="paginglinks">${index}</a> 
          </c:otherwise> 
          </c:choose> 
          </c:forEach> 
0

測試值不求值,它只是一個字符串的頁面。

編輯,你有你使用支撐的語法。

添加「%{}」 ,像這樣:

<s:if test="%{index == 1}"> 
+0

不,如果我在該測試中使用$ {},得到那個有趣的錯誤 「屬性測試不接受任何表達式」 – 2008-12-03 14:20:35

0

使用

test="${index == 1}" 

,或者嘗試使用varStatus屬性等等...

<c:forEach var="index" varStatus="status" begin="1" end="<%=a%>" step="1"> 

<s:if test="${status.count == 1}"> 
    <span class="currentpage"><b>${page_id}</b></span> 
</s:if> 
<s:else> 
    <a href="searchAction.html?page_id=${index}&searchString=${searchString}" class="paginglinks">${index}</a> 
</s:else> 
</c:forEach> 
1

的衝突是,在第一篇文章 你混合

  • JSTL標籤(在C:的forEach)
  • Struts標籤(在S:如果)

你提出的解決方案作品,因爲 你現在有

  • JSTL標籤(在C:的forEach)
  • 再次個
  • JSTL標籤(在C:當)

另外一個很好的解決辦法是

  • Struts標籤(在S:迭代器)
  • Struts標籤再次(在S:如果)

一般而言,使用來自多種技術 的標籤預計會產生問題。