Apache Wicketは、JavaWeb開発フレームワークです。彼はふさわしいほど注目されていないと感じています。私は過去6年間、実際のプロジェクトでWicketを専門的に使用してきましたが、とても気に入っています。この投稿では、それを使用することを検討する必要がある5つの理由を見てみましょう。
1.シンプルな状態管理
Wicketアプリケーションの開発エクスペリエンスは、デスクトップ開発と非常によく似ています。HTTPを使用していることをほとんど忘れてしまうことがあります。状態を保存する必要はありません。これは、Wicketでは、Webページとそのすべてのコンポーネント(ボタン、テキストボックスなど)が独自の状態を維持するJavaオブジェクトであるためです。コンポーネントの状態は、ユーザーのセッションでシリアル化され、適切なタイミングで逆シリアル化されます。
簡単に言えば、ユーザーが入力して送信するフィールドを含むフォームがあるとします。Wicketアプリケーションでは、このフォーム、そのフィールド、および送信ボタンは、作成されてWebページに追加されるコンポーネント(Javaオブジェクト)です。送信ボタンをクリックすると:
1.通常はPOJOフィールドの形式で、ユーザー入力に自動的にアクセスできます。
2. HTTPPOSTリクエストをGETリクエストにバインドする必要はありません。
また、フォームフィールドに送信された値を入力することについて考える必要もありません。これは、Wicketのコアコンセプトであるモデルを使用して行われます。
2.標準のHTML統合
WicketのHTMLは、他のいくつかのフレームワークとは異なり、特別なタグを必要としません。実際、既存のHTMLを取得して、ほとんどまたはまったく変更することなくWicketアプリケーションと統合できます。HTMLタグをWicketコンポーネントに接続するには、必要な属性は1つだけです。wicket: id
例を考えてみましょう。
<div wicket:id="userName">Roman</div>
add(new Label("userName", getUsername()));
wicket:id "userName"
HTML Wicket. Wicket Label div
. , . , . Wicket HTML / CSS / JS, , React. , .
3. Javascript ( )
- JS. AJAX, Wicket, , JS- . Wicket JQuery JS- -. , . , . Javascript . Wicket -.
4. /
Wicket - . , , . , , . , , , . :
send(getPage(), Broadcast.BREADTH, new CriticalUpdate(target, payload));
- CriticalUpdate , :
public void onEvent(IEvent event) {
if (event.getPayload() instanceof CriticalUpdate) {
String msg = ((CriticalUpdate)event.getPayload()); //do something with the msg
}
}
5.
/ Wicket , , . Wicket , . , . - CRUD: . . , , , , . これらはすべて、Selenium、Puppeteer、または同様のライブラリに頼ることなく、純粋なJavaおよびJUnitコードを使用して実行できます。
結論
Wicketを試してみるのに十分聞いたことがあると思います。詳細に興味がある場合:
優れたドキュメントについては、公式サイトにアクセスしてください。
一般的なWeb開発プラクティスのコード例を見てください。