SHOEISHA iD

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

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

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

特集記事

dataforms.jar API解説――フィールドクラスとHTMLタグの関係

数値フィールドクラス

 dataforms.jarには各種数値入力用のフィールドクラスが用意されています。以下にその一覧を示します。

数値入力フィールドの一覧
クラス 機能 Javaのデータ型 SQLのデータ型
NumberField 数値入力フィールドの基本クラス - -
SmallintField 2バイト整数の入力フィールド Short smallint
IntegerField 4バイト整数の入力フィールド Integer integer
BigintField 8バイト整数の入力フィールド Long bigint
NumericField 固定小数点数値の入力フィールド BigDecimal numeric

 NumberFieldが各種数値入力クラスの基本クラスです。NumberField.jsは3桁ごとに「,」を設定する機能や、桁数をそろえる機能などが実装されています。また、これらのフィールドに対応するタグは全て、<input type="text".../>です。

ファイルフィールドクラス

 <input type="file" />に対応するフィールドクラスには以下があります。ファイルタイプ(任意のファイル、画像、動画、音声)と保存先(フォルダ保存、BLOB保存)ごとのフィールドクラスを用意しています。画像フィールドにはサムネイル表示をサポートし、動画は<video></video>タグ、音声は<audio></audio>タグでのストリーミング再生をサポートしています。フォルダ保存のフィールドは指定されたフォルダにアップロードされたファイルを保存し、そのパスをデータベースのvarcharフィールドに保存します。BLOB保存のフィールドはアップロードされたファイルをデータベースのblobフィールドに保存します。また、Javaのデータ型であるFileObjectは、ImageData、VideoData、AudioDataのスーパークラスになっています。

ファイルフィールドクラス一覧
クラス 機能 Javaのデータ型 SQLのデータ型
FileField ファイルフィールドの基底クラス FileObject -
FolderStoreFileField フォルダ保存ファイルフィールド FileObject varchar
BlobStoreFileField BLOB保存ファイルフィールド FileObject blob
ImageField 画像フィールドの基底クラス ImageData -
FolderStoreImageField フォルダ保存画像フィールド ImageData varchar
BlobStoreImageField BLOB保存画像フィールド ImageData blob
VideoField 動画フィールドの基底クラス VideoData -
FolderStoreVideoField フォルダ保存動画フィールド VideoData varchar
BlobStoreVideoField BLOB保存動画フィールド VideoData blob
AudioField 音声フィールドの基底クラス AudioData -
FolderStoreAudioField フォルダ保存音声フィールド AudioData varchar
BlobStoreAudioField BLOB保存音声フィールド AudioData blob

 これらのフィールドクラスを含むページからHTMLを生成すると、1つの<input type="file" .../>のタグのみが出力されます。しかし、画像フィールドにはサムネイル画像、動画フィールドには<video></video>タグ、音声フィールドには<audio></audio>タグが展開されます。例として、画像フィールドをChromeで検証すると、下図のようにタグが生成されていることがわかります。

画像フィールドの展開結果

 各種ファイルフィールドクラスはdataforms.jar中に含まれる以下のリソースファイルを参照し、<input type="file" .../>の後に各種タグを展開するようになっています。これらのリソースファイルをプロジェクトにエクスポートし、修正することによってファイルフィールド周りのデザインを修正することができます。

各種フィールドの追加タグHTMLエクスポート

 画像ファイルフィールドに展開される各種タグは「ImageField_ja.html」というファイルに設定されており、その内容は以下のようになっています。

ImageField_ja.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>ImageFieldの追加コンポーネントのレイアウト</title>
  </head>
  <body>
    <div>
      <div style='width:${width}px;height:${height}px;line-height:${height}px;display:table-cell;text-align:center;vertical-align:middle;border-style:solid;border-width:1px;'>
        <img id='${fieldId}_thm' style='vertical-align:middle;'/>
      </div>
      <div>
        <a id='${fieldId}_link' href=''></a>
        <input type='checkbox' id='${fieldId}_ck'><label for='${fieldId}_ck'>削除</label>
        <input type='hidden' id='${fieldId}_fn' name='${fieldId}_fn' value=''>
      </div>
    </div>
  </body>
</html>

さいごに

 今回はフィールドクラス群の解説を行いました。次回は各種HtmlTableクラスの解説を行う予定です。

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

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
特集記事連載記事一覧

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/10783 2018/05/15 17:58

イベント

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

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

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

メールバックナンバー