我想動態地顯示可用的頁面鏈接菜單,具體取決於使用Tapestry登錄哪種類型的用戶。我在Layout.tml
代碼如何將當前循環值傳遞給Tapestry中的類方法?
部分看起來是這樣的:
<div class="header">
<t:if t:test="userLoggedIn">
<div class="menu">
<ul>
<t:loop t:type="loop" source="pageNames" value="pageName" class="prop:classForPageName">
<t:if t:test="isUserAllowedOnPage('pageName')">
<li>
<t:pagelink page="prop:pageName.name">${pageName.displayName}</t:pagelink>
</li>
</t:if>
</t:loop>
</ul>
</div>
</t:if>
<div style="clear:both;"></div>
</div>
在我Layout.java
我有以下方法:
public boolean isUserAllowedOnPage(String pageName) {
// My logic here, returns either true or false
}
的問題是,我不知道如何來通過實際的頁面名稱參數爲isUserAllowedOnPage(String pageName)
方法,因爲用下面一行tml
代碼
"isUserAllowedOnPage('pageName')"
我傳遞一個實際的字符串,"pageName"
而不是其中一個所需值(例如,"Index"
,"About"
,"Contacts"
...)。
我知道這可能不是最好的做法,但我想從外循環當前迭代值我'Layout.tml',而不是'Layout#getPageName()'方法。 – Lopina
組件模板沒有值,它只是一個視圖。所有的值都存儲在java類中。所以當你寫'
sody