java - 如何将复选框绑定(bind)到 Play 中的 boolean 值!框架

标签 java binding playframework

我正在使用 Play! Framework 有一个名为 gift 的对象,它有一个名为 Taken 的 boolean 属性。如何在我的 View 中将此值的状态显示为复选框?我试过了:-

<input id="gift_Taken" class="" type="checkbox" name="gift.Taken" value="true"  />
<input type="hidden" name="gift.Taken" value="false" />

基于我从自动生成的 CRUD 表单中看到的示例,但是当属性为 True 时复选框未被选中,这正是我的目标。

有人知道实现此目标的正确方法吗?

最佳答案

接受的答案实际上并非 100% 正确,因为它不处理“未经检查”的情况。要处理这两种情况,您需要一个隐藏字段:

<input id="gift_Taken" type="checkbox" name="gift.Taken" ${gift.Taken ? 'checked':''}  />
<input type="hidden" name="gift.Taken" value="false" />

请注意,位置似乎很重要,因此隐藏字段必须在复选框之后。

为此编写一个自定义模板标签,可以很容易地忘记隐藏的输入(将其放入 views/tags/checkbox.html):

<input id="${_id}" type="checkbox" name="${_name}" value="true" #{if _checked} checked="checked" #{/if}>
<input type="hidden" name="${_name}" value="false">

然后像这样调用这个模板:

#{checkbox id:'gift_Taken', name: 'gift.Taken', checked: gift.Taken /}

另见 Play Framework 列表的相关讨论:https://groups.google.com/forum/?fromgroups=#!topic/play-framework/HygQuYF3a8E

关于java - 如何将复选框绑定(bind)到 Play 中的 boolean 值!框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8204708/

相关文章:

javascript - Jquery Focus 不适用于输入

python - Python 闭包中的可变绑定(bind)时间

wpf - 如何绑定(bind)到 RelativeSource Self?

mysql - play framework - 连接linux mysql

java - Play Framework 在请求开始时执行原始 sql?

java - Playframework 结果检查如何工作

java - hibernate 不会自动插入连接表

java - 需要根据 ASCII 和 BASE64 编码的 UTF-8 字符串验证域的帮助

java - 在 ExecutorService 中使用同步块(synchronized block)

wpf - 如何在 WPF 中禁用上下文菜单?