2008-12-03 77 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:如果)

一般而言,使用来自多种技术 的标签预计会产生问题。