在jstl页面中使用object的方法

时间:2009-09-25 10:52:35

标签: java jsp jstl

我有一个使用此方法的模型:

public List<String> getPriviledgeNames()

我正在尝试在我的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>

我想添加checked =“checked”,只是他们的名字在我的模型方法提供的列表中。有没有办法在不使用scriptlet的情况下执行此操作?我想在我的页面中没有java代码...

感谢您的帮助! 罗伯特

2 个答案:

答案 0 :(得分:0)

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

- 根据文档,它实际上正在进行字符串/字符串比较,所以我假设它实际上是在检查字符串值是否是list.toString()的子字符串。

您还可以使用forEach标记对列表中的每个值进行手动测试,但这样会更加混乱。

答案 1 :(得分:0)

通过使用地图而不是列表可以执行以下操作:

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

或者只需:${yourModel.priviledgeNames['clickthrough']}将您的复选框名称映射到 checked =“checked”