【JSP】文字列フォーマット後のDate型フィールドをjspから参照する

jspファイルから日時を扱うDate型フィールドのgetterメソッドを呼び出して
ページへ値を表示させる際に起きたエラーとその改善策をメモします。

エラーの内容と原因

getterの戻り値の型がフィールドと異なる(String型)

Date型フィールドposted_atのgetterメソッド内で
指定の書式にフォーマットするロジックを持つメソッドを呼び出し、
文字列として返す方法を取りましたがエラーが起きてしまいました。

posted_at(フィールド)のgetterメソッド getPosted_at
その内部で呼び出す文字列フォーマットの dateFormat メソッド

– jsp –
クラスオブジェクトtsubuyaki から posted_at のゲッターを参照

エラー発生

(内容)

HTTPステータス 500 – javax.servlet.ServletException: java.lang.NoSuchMethodError: model.Tsubuyaki.getPosted_at()Ljava/util/Date;
メッセージ
javax.servlet.ServletException: java.lang.NoSuchMethodError: model.Tsubuyaki.getPosted_at()Ljava/util/Date;

getterとしてメソッドを定義する場合は該当するフィールドの型と一致しなければいけないようです。

解決

ですので、jspからはgetterではなく
フィールドを文字列でフォーマットするメソッドを直接呼び出すことにしました。

– jsp –

表示結果

なお、今回はモデルクラスの方で書式のフォーマットを行なう例を取り上げましたが、
jspファイルのスクリプトレット内でフォーマットのロジックを記述し、
getterで取得した値をそこへ渡してあげて表示させても良いかと思います。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください