gpt4 book ai didi

java - 更改属性在 Wicket 数据表中的显示方式

转载 作者:搜寻专家 更新时间:2023-11-01 01:18:33 26 4
gpt4 key购买 nike


我正在 Wicket 中开发一个新应用程序,遇到了一个小问题。

我使用的是 Wicket DataTable,但我希望数据表中的某些属性以不同于其“实际”值的方式呈现。例如,我有一个显示为“2011-09-01 00:00”的日期,但我希望它显示为“2011-09-01”。我该怎么做?

我真的不想更改为 POJO 或 Date 对象(也许在某处覆盖某些东西?)。

提前致谢!
偶来

最佳答案

您可以创建自定义 IColumn 实现,格式化值:

class FormatedPropertyColumn<T> extends PropertyColumn<T> {

private final Format format;

public FormatedPropertyColumn(IModel<String> displayModel, String sortProperty, String propertyExpression, Format format) {
super(displayModel, sortProperty, propertyExpression);
this.format = format;
}

public FormatedPropertyColumn(IModel<String> displayModel, String propertyExpression, Format format) {
super(displayModel, propertyExpression);
this.format = format;
}

@Override
protected IModel<?> createLabelModel(IModel<T> rowModel) {
final IModel<?> originalModel = super.createLabelModel(rowModel);
return new AbstractReadOnlyModel<String>() {
@Override
public String getObject() {
Object value = originalModel.getObject();
return (value != null) ? format.format(value) : null;
}
};
}
}

然后在实例化时传递所需的格式。

List<IColumn> columns = Arrays.asList(
new FormatedPropertyColumn<POJO>(Model.of("Date"), "date", new SimpleDateFormat("yyyy-MM-dd"))
);

关于java - 更改属性在 Wicket 数据表中的显示方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7581006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com