确定。我正在制作一个带有数据库后端的java Web应用程序,以便对某些数据进行一些CRUD。在项目旁边单击编辑按钮时,它会导航到包含当前数据的表单进行编辑。其中一个字段是布尔值,我想将其显示为一个复选框,以便True
对其进行检查,False
将其取消选中。
我尝试过许多不同的变化似乎都无法奏效。以下是<%= action.get("stable")%>
返回包含True
或False
<input TYPE=checkbox name="stable" value=<%= action.get("stable") %>
<input TYPE=checkbox name="stable" value=<%= action.get("stable")?"True":"False" %><%= action.get("stable")?"checked":"" %>
<input TYPE=checkbox name="stable" checked=<%= action.get("stable")%>/>
那么如何设置一个复选框来选中/取消选中,具体取决于action.get("stable")
返回的字符串
如果问题有点微不足道,感谢您的帮助。
答案 0 :(得分:3)
选中复选框的正确标记为checked="checked"
。如果未选中,则checked
属性根本不存在。
您应该使用JSTL和JSP EL生成它,因为scriptlet是过去的东西,多年来不应该在JSP中使用。请参阅How to avoid Java code in JSP files?。
这当然需要一些重构,以便action bean有一个常规的isStable()
方法返回一个布尔值,这将更加清晰。但无论如何,这是使用现有代码的方式:
<input type="checkbox" name="stable" <%
if ("True".equals(action.get("stable"))) {
out.print("checked=\"checked\"");
} %>/>
请注意,所有属性也应该用引号括起来。
答案 1 :(得分:1)
您需要设置checked
<input type="checkbox"/>
属性
编辑:
<input type="checkbox" <%=action.get("stable") ? "checked='checked'" : "" %> />
答案 2 :(得分:0)
我使用了它,并且效果很好。
<input type="checkbox" <c:if test="${item.estado==2}">checked=checked</c:if> class="switch-input" >