2009-09-25 62 views
0

我有這種方法的模型他們的名字在我的模型中返回的列表中。 所以我有這樣的:使用對象的JSTL頁面方法

<li> 
    <input type="checkbox" name ="priviledge" id="CheckBox2" class="checkbox" value="clickthrough" /> 
    <label for="CheckBox2">Clickthrough</label> 
</li> 
<li> 
    <input type="checkbox" name ="priviledge" id="CheckBox3" class="checkbox" value="details" /> 
    <label for="CheckBox3">Details</label> 
</li> 

我想補充的檢查=「選中」僅他們的名字是我的模型的方法提供的列表。有沒有辦法做到這一點,而不使用scriptlet?我想在我的網頁內沒有Java代碼...

感謝您的任何幫助! 羅伯託

+0

什麼,我想你想要的是絕對可以實現的,但是我對這個問題感到困惑 - 你在'我想添加checked ='checked'「中引用的」他們「是什麼,只有他們的名字在我的模型方法提供的列表中。 ? – Chii 2009-09-25 11:05:37

+0

對不起,我的意思只是如果他們的價值是在列表中,如「點擊率」或「細節」! – Roberto 2009-09-25 12:17:46

回答

0
<c:when test = "${fn:contains(list,value)}"> 

- 根據該文檔它實際上做一個字符串/字符串比較,所以我認爲它實際上是檢查字符串值是否list.toString的子串()。

您也可以使用forEach標記對列表中的每個值執行手動測試,但這樣會變得更加混亂。

+0

是的for循環將是一團糟,我一定會嘗試這個解決方案。我沒有嘗試,因爲我沒有考慮要調用toString()方法。 – Roberto 2009-09-25 12:16:35

0

通過使用地圖,而不是一個列表可以做這樣的事情:

<c:if test="${yourModel.priviledgeNames['clickthrough'] ne null}"> 
checked="checked"</c:if> 

或者只是這樣的:首先映射覆選框名${yourModel.priviledgeNames['clickthrough']}檢查=「檢查」