簡単な答え:はい、追加する必要があります。
長い答え:これを行うためのカスタムコードを作成することはできますが、努力する価値があるとは思えません。
JSFでは、非htmlタグを使用します。このタグには1つのコンポーネントタイプが関連付けられており、たとえば、h:inputText
クラスに対応しているHtmlInputText
ため、インスタンス化するクラスがわかります。
wicket:id
Wicketでは、HTMLファイルには(いくつかの例外を除いて)HTMLタグのみが含まれ、マークアップに追加するマーク付きタグごとに具体的なコンポーネントをインスタンス化する必要が<span wicket:id='xyz'>
ありLabel
ますFeedbackPanel
。 、WebMarkupContainer
またはいくつかのカスタムコンポーネント。
JSFを使用すると、マークアップでWicketを使用して、Javaコードで実行します。つまり、コンポーネントツリーを構築し、コンポーネントをプロパティにバインドし、イベントを処理します。すべてを1つのファイルに保持し(テンプレートファイルごとにクラスを作成する必要はありません)、多くの短所があります(長所があると思う人もいますが、私は逸脱します)。
あなたのページは、何もしない単純なフォームではありません。入力を変換して検証し、送信を処理し、Ajaxを使用してコンポーネントを更新します。JSFを使用すると、(コンパイル不可能、タイプセーフ、ツールが不十分、リファクタリング不可能な)テンプレートでこれらすべてを実行し、式、構成タグ、および-gawdforbid-ビジネスロジックで肥大化させます。
Wicketがこれをサポートしている場合(そして、問題として、このアドオンを自分で構築するために必要な柔軟性があります)、多くの追加の注釈(特別な非標準のタグと属性)を追加する必要があります。マークアップ、インスタンス化するクラス、更新するモデル、実行する検証などを宣言し、フレームワークの2つの美しさ、クリーンなHTMLテンプレート、およびビジュアルとロジックの明確な分離を損ないます。
JSF(とにかくそれほど難しくはない)よりも肥大化を抑えながら、テンプレートでより多くのことを行おうとする1つのフレームワークは、ApacheTapestryです。しかし、そのチュートリアルに見られるように、テンプレートをコードにバインドするために、非標準のタグを使用し、任意の規則に従う必要があります(あなたはそれを好きかもしれませんが、これが事実である場合は、申し訳ありません: P)。