フォームの扱い

Webアプリケーションに欠かせないHTMLのフォーム。Wicketでフォームを扱うための方法を今回は紹介する。

フォームは,inputタグなどのいくつかの入力要素から構成される。GUIアプリで言えば,フォームはコンポーネントが登録されるコンテナだ。Wicketでは,フォームを扱うために,Formクラスが提供されている,Formクラスは,Wicketコンポーネントのコンテナとして機能する。

HTMLのフォームは,formタグで表される。通常は,action属性によりサブミットがかけられたときのリクエストURLを指定する。では,Wicketにおけるフォームの書き方から見ていこう。

  ・・・   

Wicketにおけるformタグには,基本的にはwicket:id属性でIDを指定するだけで良い。そして,formタグの子要素として,入力要素を記述していく。ここでは,サブミットボタンを設置している。サブミットボタンについては,フォームに1つだけの設置であれば,wicket:id属性は必要ない。あってもいいけど。

このPOHPに対するJavaコードだが,ここではこのページをEmployeePageとして考えると,以下のような感じになる。

public class EmployeePage extends WebPage {   public EmployeePage() {     super();     add(new EmployeeForm());   }   private class EmployeeForm extends Form {     public EmployeeForm() {       super(“employeeForm”);     }     public void onSubmit() {       // サブミット時の処理を記述     }   } }

内部クラスとして,Formクラスを継承したEmployeeFormクラスを作成している。WebPageクラスのコンストラクタ内で,addメソッドを使ってEmployeeFormオブジェクトを登録している。EmployeeFormクラスのコンストラクタでは,親のコンストラクタにフォームのID文字列を渡している。上記の例では,POHP内でwicket:id属性を使って指定した”employeeForm”を指定することによって対応付けを行っている。

フォーム内に入力要素があるときには,Formクラスのサブクラスのコンストラクタ内で,Wicketコンポーネントをaddメソッドを使って登録していけばよい。

フォームに対してサブミットがかけられたときには,onSubmitメソッドが呼び出される。onSubmitメソッド内で,サブミット時の処理を行えばよい。非常に簡単,単純である。

さて,これを実行したときには,上記のPOHPは実際には以下のような感じになる。

  ・・・   

action属性を見ると,何やらいろいろと書かれているが,Wicketが自動で書いていることなので,普通は気にする必要はない。onSubmitメソッドにやりたいことを記述するだけである。

このエントリーをはてなブックマークに追加

関連記事

2023年のRemap

Remapにファームウェアビルド機能を追加しました

Google I/O 2023でのウェブ関連のトピック

2022年を振り返って

現在のRemapと今後のRemapについて