Java 使用对象';jstl页面中的s方法
我有一个使用这种方法的模型:Java 使用对象';jstl页面中的s方法,java,jsp,jstl,Java,Jsp,Jstl,我有一个使用这种方法的模型: public List<String> getPriviledgeNames() public List getPriviledgeNames() 我试图在我的jstl页面中显示一个复选框列表,我只想选中那些从我的模型返回的列表中的复选框。 所以我有点像: <li> <input type="checkbox" name ="priviledge" id="CheckBox2" class="checkbox" value=
public List<String> getPriviledgeNames()
public List 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代码
谢谢你的帮助!
罗伯托
-根据文档,它实际上在进行字符串/字符串比较,因此我假设它实际上在检查字符串值是否是list.toString()的子字符串
您也可以使用forEach标记对列表中的每个值进行手动测试,但这样做会更麻烦。使用映射而不是列表可以执行以下操作:
<c:if test="${yourModel.priviledgeNames['clickthrough'] ne null}">
checked="checked"</c:if>
checked=“checked”
或者就是这样:
${yourModel.priviledgeNames['clickthrough']}
通过将您的复选框名称映射到checked=“checked”我认为您想要的肯定是可以实现的,但我对这个问题感到困惑-您在中提到的“他们”是什么?我想添加checked=“checked”我的模型方法提供的列表中只有它们的名称。
?对不起,我的意思是只有当它们的值在列表中时,如“点击”或“详细信息”!是的,for循环会很混乱,我一定会尝试这个解决方案。我没有尝试,因为我没有考虑要调用的toString()方法。
<c:if test="${yourModel.priviledgeNames['clickthrough'] ne null}">
checked="checked"</c:if>