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
各項目の脇にエラーメッセージ出せる?