2010-03-15 43 views
0

假設我有兩個對象具有相同的屬性名稱,我遍歷和Struts 2比較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頁面中,我想遍歷書和章。在迭代時,如果書的標題與章的標題相同,我將如何顯示特殊消息?

<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標籤在上面的片段中以比較書名和章節標題?

謝謝!

注:這是非常類似於下面的計算器問題(但在這個問題,他們只打印屬性的名稱,而不做一個比較和屬性名稱是不同的父和子對象):

Struts 2 nesting iterators

回答

1

可以使用standard EL operators==eq或以相等測試(字符串)值:

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

或(a b它更多XHTML friendly)

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

會真的有用嗎?我有一整本書和一系列章節。我想我會需要像bookList.title == bookList.chapterList.title(這不會工作,因爲它不知道要檢查的列表中的哪個元素)。 – David

+0

Erm,在您的(僞)代碼示例中,您已經在遍歷這兩個列表。或者你的問題也是你不知道如何迭代它們? – BalusC