使用数据库中的值设置jsp复选框

时间:2011-10-21 06:28:44

标签: java jsp

确定。我正在制作一个带有数据库后端的java Web应用程序,以便对某些数据进行一些CRUD。在项目旁边单击编辑按钮时,它会导航到包含当前数据的表单进行编辑。其中一个字段是布尔值,我想将其显示为一个复选框,以便True对其进行检查,False将其取消选中。

我尝试过许多不同的变化似乎都无法奏效。以下是<%= action.get("stable")%>返回包含TrueFalse

的字符串的一些示例
<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")返回的字符串

如果问题有点微不足道,感谢您的帮助。

3 个答案:

答案 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" >