一尘不染

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

jsp

好。我正在用数据库后端制作一个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")

谢谢您的帮助,对不起,如果这个问题有点琐碎。


阅读 276

收藏
2020-06-10

共1个答案

一尘不染

选中的复选框的正确标记是checked="checked"。如果未选中,则该checked属性完全不能存在。

您应该使用JSTL和JSPEL生成它,因为scriptlet是过去的东西,多年以来都不应该在JSP中使用。

当然,这需要进行一些重构,以便操作bean具有isStable()返回布尔值的常规方法,这将更加清洁。但是无论如何,这是使用现有代码的工作方式:

<input type="checkbox" name="stable" <% 
    if ("True".equals(action.get("stable"))) {
        out.print("checked=\"checked\"");
    } %>/>

请注意,所有属性也应用引号引起来。

2020-06-10