java 模型引用_java – Wicket:包含Panel的引用模型的组件

为了说明我的问题,假设我有一个Thing的实例,它有两个文本属性 – ‘foo’和’bar’.

我想创建一个Panel来编辑Thing的实例.该面板有两个TextField组件,一个用于’foo’属性,另一个用于’bar’属性.

我希望能够在我的Panel上使用IModel< Thing>的实例调用setDefaultModel().并为TextField组件引用此模型.如何最好地实现这一目标?

我是否应该覆盖Panel.setDefaultModel()方法以在两个TextField组件上调用setModel()?或者可能为TextField组件创建匿名的ReadOnlyModels,重写getObject()方法以从包含Panel的模型中检索对象?

这些对我来说都不是很优雅,所以我想知道是否有更好的方法?

解决方法:

您可以将PropertyModel用于textFields.通过IModel< Thing>使用foo作为属性名称进入PropertyModel的构造函数:

add(new TextField("fooFieldId", new PropertyModel(thingModel, "foo")));

PropertyModel将确定thingModel是一个Model并调用getObject().getFoo()等.

这假设IModel< Thing>实例不会更改,只能调用setDefaultModelObject来更改其底层对象.

标签:java,wicket

来源: https://codeday.me/bug/20190630/1335642.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值