比较Struts 2嵌套迭代器

时间:2010-03-15 15:15:06

标签: java jsp struts2

假设我有两个具有相同属性名的对象,我正在使用Struts 2进行迭代。

class Book {

// assume that there is a public getter and setter
public String title;

public List<Chapter> chapterList;

}

class Chapter {

public String title;

}

在我的JSP页面中,我想迭代Book和Chapter。在迭代时,当书的标题与章节的标题相同时,如何显示特殊信息?

<s:iterator value="bookList">
 <s:iterator value="chapterList">
  <s:if test="book.title.equals(chapter.title)">
   Same title
  </s:if>
 </s:iterator>
</s:iterator>

如何修复上述代码段中的s:if标记,以便将书名与章节标题进行比较?

谢谢!

注意:这与下面的stackoverflow问题非常相似(但在该问题中,他们只打印属性名称而不进行比较,并且父对象和子对象的属性名称不同):

Struts 2 nesting iterators

1 个答案:

答案 0 :(得分:1)

您可以使用standard EL operators ==eq来测试(String)值是否相等:

<s:if test="%{book.title == chapter.title}">

或(更多XHTML友好)

<s:if test="%{book.title eq chapter.title}">