フォームを使うときの注意点をまとめてみます。
●FormをPageに追加(add)するのは、Formにコントロールを追加した後で。
addメソッドの中で、htmlのタグとコンポーネントの関連付けを実行しているようで(たぶん)Formに必要なコンポーネントを追加する前に、FormだけWebPageに追加してしまうと、エラーで落ちます。
●Formの入力値を受け取るModelをセットしておかないと、サブミット(ポストバック?)したときにエラーで落ちます。
Wicketは、Formの入力値を受け取るためのモデルを事前にWebPageに設定しておく必要があります。
これを忘れると、サブミットしたときにエラーで落ちます。。トホホ。
こんなエラーが出ます。
WicketMessage: Method onFormSubmitted of interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at component [MarkupContainer [Component id = form, page = net.mekefactory.wicket.TextField1Page, path = 1:form.Form, isVisible = true, isVersioned = true]] threw an exception
Root cause:
java.lang.IllegalStateException: Attempt to set model object on null model of component: form:text
- コンポーネントのコンストラクタで指定
- コンポーネントが属するフォームのコンストラクタで指定
- ページに指定
の順番で探しにいくのかな?
値の受け渡しに必ずモデルを用意する必要があるのは、ちょっと面倒くさいなぁ。
何か楽な方法があるのだるか・・・?(ダメ)
最終更新:2007年10月04日 20:39