読者です 読者をやめる 読者になる 読者になる

Teedaでtitleを動的に変更したい

seasar

Teedaでは、headのtitleタグでidを指定すると、propertiesファイルからタイトル文字列を取得してくれます。

DoltengTeedaだと、CRUDページをEdit/Confirmの2種類のhtmlでカバーするのが基本構成となっています。
新規作成と変更をEditで。削除と詳細をConfirmで。

でそうなると、ボタン名とか画面タイトルとかを条件分岐させて違う文字列を表示させることが必要となってきます。
ボタン名とか、body内での条件分岐はこないだ書いたようにdivタグのidにisXxxxを使うことで実現できます。
(spanタグだと微妙に挙動がおかしいのが気になりますが)

で、いまできないのはtitleの制御。
title内にはdivとかspanとかを書けません(HTMLの仕様?)。
無理矢理書いてみても、タグがそのままタイトルバーに表示されてしまいます。

うまいことtitleを条件分岐させたいのですが...。
どうやったもんでしょうか。

HTML的には仕様違反かもしれないですが、div/spanによる条件分岐を使えるようにするか、
それとも、id属性をうまくつかって指定できるようにするといいんでしょうかねぇ。

たとえば、

  <head><title id="title">title</title></head>

  PageClass:
  public String getTitle() {
      return "HOGE";
  }

みたいに、titleやlabelのid指定=プロパティファイルではなく、ページクラスでもしプロパティ(getter)が定義されていればそっちを優先するようにするとか。そうすれば条件分岐はページクラスで自由にできますね。

他にはDynamic Property(?)風に

  PageClass:
  public String getTitleContents() { // Suffix例: Content(s), Element, TextElement, Child
      return "HOGE";
  }

みたいにSuffixがContentsの場合はidがtitleの要素内容を書き換えることができる、とか。
これならtitle以外にも他の場面でもいろいろ応用が利くかもしれません。