BBSその4 FormにControlを追加(項目を追加)

遅ればせながら、
[Seasar] 掲示板作るその1 - mokkouyou2001の日記のような掲示板を今回も作りたいと思います。
まずは、BbsPageを編集して、フォームに入力欄を作ります。
コンストラクタ内に以下のような追加を行います。

  TextField titleText = new TextField("titleTextField", "タイトル", true);
  form.add(titleText);
  
  Submit submitBtn = new Submit("submitBtn", "投稿");
  form.add(submitBtn);

titleTextFieldという名前で、登録します。
この部品は、ラベル(表示名)がタイトルで、必須項目です。
また、投稿というラベルのサブミットボタンも用意します。
画面を表示して、未入力のまま、投稿ボタンを押すと入力チェックが実行され表示されます。
実際はタイトルは必須項目としないので、
その他もろもろ、テキスト入力欄のものを追加していきます。

  TextField titleText = new TextField("titleInputField", "タイトル");
  form.add(titleText);
  
  TextField nameText = new TextField("nameInputField", "名前", true);
  form.add(nameText);
  
  EmailField emailText = new EmailField("emailInputField", "e-mail");
  form.add(emailText);
  
  TextArea messageArea = new TextArea("messageInputArea", "本文", true);
  messageArea.setCols(40);
  messageArea.setRows(10);
  form.add(messageArea);
  
  PasswordField passwordText = new PasswordField("passwordInputField", "パスワード", true);
  form.add(passwordText);
  
  Submit submitBtn = new Submit("submitBtn", "投稿");
  form.add(submitBtn);
  addControl(form);

EmailFieldなどは、フォーマットチェックもしてくれます。
FieldSetなどを使用しても面白いとは思いますが、
今回は必要ないので、変更なし。
PageでFormのレイアウト指定してもよいし、

  form.setErrorsAlign(Form.ALIGN_CENTER);
  form.setErrorsPosition(Form.POSITION_MIDDLE);

htmでレイアウト指定してもいいかなと。

$form.setErrorsAlign("right")
$form.setErrorsPosition("middle")
$form

デザインを共通化しやすいほうでやった方がいいでしょう〜
となるとマクロとかにしちゃうのがいいのかな?

TODO

各項目の脇にエラーメッセージ出せる?