首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迁移Struts1 <logic:iterate>标签

迁移Struts1 <logic:iterate>标签
EN

Stack Overflow用户
提问于 2018-02-06 12:44:47
回答 2查看 358关注 0票数 1

我正在将一些Struts1代码迁移到Struts2,并对以下标记的迁移感到困惑。

Struts1:

代码语言:javascript
复制
<logic: notEmpty name="newsListForm" property="generalNews.list">
    <logic:iterate id="generalNews"
        name="newsListForm"
        property="generalNews.list"
        type="com.ab.NewsDTO"
        indexId="rowCount">
        <%
            if(rowCount.longValue() % 2 == 0){
             bgcolor = "#FFFFF";
            }else{
             bgcolor = "#EEEEE";
            }
        %>
     </logic: iterate>
    </logic: notEmpty>

我将上面的代码迁移为:

Struts2

代码语言:javascript
复制
<s:if test="(newsListBean.generalNews.list != null)">
 <s:iterator id="generalNews"
            values="generalNews.list"
            status="incrementer">
    <s:if test="#incrementer.even==true">
<% pageContext.setAttribute("bgcolor","#FFFFFF")%>
</s:if>
 <s:else>
<% pageContext.setAttribute("bgcolor","#EEEEEE")%>
</s:else>
>
 
</s:iterator>
</s:if>

这是迁移这些迭代& <logic:notEmpty>标记的正确方法吗?

EN

回答 2

Stack Overflow用户

发布于 2018-02-06 16:18:01

不,这不对。原始代码使用标记和脚本代码生成一些文本,这可能是一种JavaScript代码。

但是转换的代码并不能做到这一点。相反,它用于设置页面上下文属性。

票数 0
EN

Stack Overflow用户

发布于 2018-02-07 14:33:42

有些离题,但相关:有一种方法,更干净的方式,通过使用适当的CSS来做到这一点。

首先,拥有行颜色的类:无论如何,这是您应该拥有的东西,而不是将表示定义嵌入JSP代码中:

代码语言:javascript
复制
<style>
  .row-0 { bgcolor: #ffffff }
  .row-1 { bgcolor: #eeeeee }
</style>

然后使用这些来构造任何您需要的类名(在这里,可能是<td>):

代码语言:javascript
复制
<s:iterator id="generalNews" values="generalNews.list" status="stat">
  <tr class="row-${stat.count % 2}">
    <!-- ... Table row content ... -->
  </tr>
</s:iterator>

(粗略地说,这是记忆中的。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48643379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档