私はウィケットが初めてです。休止状態でデータベースから取得した日付を表示し、単純なラベルで表示したい。
Label("nextCallDate",new PropertyModel(contact, "nextCallDate"))
しかし問題は、日付のみを表示し、時間部分を省略したいことです。これを行う方法はありますか?さらに、Label コンポーネントの出力をフォーマットする方法はありますか?
ありがとう
そのために IConverter を使用します。アプリケーションに登録するか、コンポーネントで #getConverter() をオーバーライドできます。
をサブクラス化しPropertyModel
、Apache Commons の DateFormatUtils を使用してフォーマットされた文字列を返すモデルを作成できます。これには、エンティティを変更する必要がなく、再利用が容易になるという利点があります。
public class DatePropertyModel extends PropertyModel{
public DatePropertyModel(Object modelObject, String expression) {
super(modelObject, expression);
}
@Override
public Object getObject() {
return DateFormatUtils.format((Date)super.getObject(), "dd-MM-yyyy");
}
}
次に、このモデル クラスを使用してラベルを定義します。
Label("nextCallDate",new DatePropertyModel(contact, "nextCallDate"))