SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

OSSフレームワーク「dataforms.jar」でサンプルプログラムを構築する(2)

<select>タグの選択肢の設定

 AttachFileTableはファイルの種類ごとにblobを用意し、ファイルタイプ別に使い分ける仕様にしました。これはデータベース設計の観点からするとあまりよくない設計ですが、dataforms.jarが持つ特殊なファイル フィールドの機能を生かすため、あえてこのようにしています。このテーブルではファイルタイプの<select>でファイル、画像、動画、音声を指定し、そのタイプに応じたフィールドのみをページに表示するようにするような制御を追加したいと思います。

 記事の新規登録のフォームでファイルテーブルの行を追加すると分かりますが、ファイルタイプの選択肢が表示されていません。

ファイルタイプの選択肢が設定されていない状態
ファイルタイプの選択肢が設定されていない状態

 自動生成されたHTMLは以下のようになっているので当然の結果です。

ファイルタイプに対応したタグ
<select id="attachFileTable[0].fileType"></select>

 大抵のフレームワークでは、この部分に<option>を記述することになると思います。しかし、dataforms.jarではこのような選択肢をデータベースから取得します。まず、[基本機能/列挙型管理]を使用し、以下のように選択肢を新規登録します。

ファイルタイプの登録
ファイルタイプの登録

 今回作成したFileTypeFieldクラスは、EnumOptionSingleSelectFieldというクラスから派生しています。EnumOptionSingleSelectFieldクラスは、[基本機能/列挙型管理]で登録した選択肢を選択するフィールドクラスです。上の画面では[fileType]という選択肢を登録したので、「FileTypeField.java」の定数ENUM_TYPEを"fileType"に修正します。

「FileTypeField.java」の修正箇所

    ・・・ 前略 ・・・

    /**
     * 列挙名称。
     */
    private static final String ENUM_TYPE = "fileType"; // 適切に修正して使用してください。
    /**
     * フィールドコメント。
     */
    private static final String COMMENT = "ファイルタイプ";
    /**
     * コンストラクタ。
     */
    public FileTypeField() {
        super(null, ENUM_TYPE);
        this.setComment(COMMENT);
    }

    ・・・ 後略 ・・・

 太字部分を修正してビルドすると、ファイルタイプの選択肢にファイル、画像、動画、音声が表示されるようになります。

ファイルタイプの選択肢が設定設定された状態
ファイルタイプの選択肢が設定された状態

多言語対応

 ファイルタイプを登録する際、言語コードは全て[default]で登録しました。今回は日本語のみの対応なのでこれで良いのですが、英語版が必要な場合は言語コード[default]には英語で登録し、言語コード[ja]に日本語を登録します。このように設定すると、ブラウザに設定された言語に対応した選択肢が出力されるようになります。英語、日本語以外の言語を追加する場合は「web.xml」の以下の部分に言語コードを追加します。以下の例ではドイツ語(de)を追加しています。

web.xmlへの言語追加
  <!-- サポートする言語コードを指定します。
      default以外の言語コードを","区切りで指定します。
      EnumOptionNameTable等、言語ごとに名称を登録するテーブルで使用します。
  -->
  <context-param>
      <param-name>support-language</param-name>
      <param-value>ja,de</param-value>
  </context-param>

 ページを英語と日本語に対応する場合、英語版ページを「XxxPage.html」に記述し、日本語版ページを「XxxPage_ja.html」に記述します。これによりブラウザの言語設定に応じて、自動的に日本語と英語が切り替わるページになります。dataforms.jarの*.htmlは一切ロジックを含まないので、日本語版のシステムができたら、英語版の実装はHTMLと英語のできる方に丸ごと任せられるようになっています。現在のバージョンでは基本機能の各ページのみ英語版(自動翻訳レベルです)を用意しています。開発ツールは機能追加を考えているので、現状では日本語版しかありません。

次のページ
ファイルタイプフィールドの実装

この記事は参考になりましたか?

特集記事連載記事一覧

もっと読む

この記事の著者

高柳 正彦(タカヤナギ マサヒコ)

経験年数30年を超えた、システムエンジニアです。一応管理職のはずですが、未だにコードを書いています。この仕事を長々とやっていると、それなりにノウハウがたまってきます。そのノウハウをまとめたものができないかと思い、独自のフレームワークを作り始めました。そのフレームワークもそれなりに使えるようになってき...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/10043 2017/05/22 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー