使用对象的JSTL页面方法
问题描述:
我有这种方法的模型他们的名字在我的模型中返回的列表中。 所以我有这样的:使用对象的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代码...
感谢您的任何帮助! 罗伯托
答
<c:when test = "${fn:contains(list,value)}">
- 根据该文档它实际上做一个字符串/字符串比较,所以我认为它实际上是检查字符串值是否list.toString的子串()。
您也可以使用forEach标记对列表中的每个值执行手动测试,但这样会变得更加混乱。
+0
是的for循环将是一团糟,我一定会尝试这个解决方案。我没有尝试,因为我没有考虑要调用toString()方法。 – Roberto 2009-09-25 12:16:35
答
通过使用地图,而不是一个列表可以做这样的事情:
<c:if test="${yourModel.priviledgeNames['clickthrough'] ne null}">
checked="checked"</c:if>
或者只是这样的:首先映射复选框名${yourModel.priviledgeNames['clickthrough']}
到检查=“检查”
什么,我想你想要的是绝对可以实现的,但是我对这个问题感到困惑 - 你在'我想添加checked ='checked'“中引用的”他们“是什么,只有他们的名字在我的模型方法提供的列表中。 ? – Chii 2009-09-25 11:05:37
对不起,我的意思只是如果他们的价值是在列表中,如“点击率”或“细节”! – Roberto 2009-09-25 12:17:46