我有一个使用此方法的模型:
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代码...
感谢您的帮助! 罗伯特
答案 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”