はい、Wicket を使用して SPA を構築できます。そのコンポーネント アーキテクチャにより、実際には非常にシンプルになります。
基本的に、通常のアプリケーションでページになるものを Panel に変換し、ページ間を移動する代わりに、単一のページを Ajax でパネルを切り替えるようにします。ページの複数のセクションなどに複数のパネルを使用できます。フレームワークでは、これはすべて非常にシンプルで自然です。5.x 以降に追加されたイベント アーキテクチャにより、セクション間通信の使用がさらに簡単になります。
ただし、ページのブックマーク機能は失われます。
単一のページであるため、ブラウザーのアドレス バーの URL は変更されず、ユーザーがブックマークを作成すると、ブックマークが作成されたときに表示されていたページではなく、常に最初のページにヒットします。
クライアント側 (JavaScript ベース) のフレームワーク (GWT など) は通常、動的アンカー (URL の # の後の文字列) を使用して現在の状態をエンコードすることでこれを実装し、必要に応じてアプリがそれを再構築できるようにします。中心的なフレームワークであるにもかかわらず、Wicket はそれを行うことができません (少なくとも、多くのカスタム コードがなければできません)。可能で実行可能ですが、ある程度の検討と作業が必要です。
多くの場合、これは必要な機能ではありません (または、望ましくない動作でさえあるかもしれません)。その場合、Wicket は本当に役に立ちます。
アクションベースのフレームワーク (Struts、Spring MVC、Play など) の使用については、クライアントを多用するアーキテクチャが必要な場合に適しています。しかし、必然的にアプリケーションのほとんどを Javascript でコーディングするか、何らかの Java-to-javascript-compiler (GWT) を使用し、フレームワークを使用してクエリを作成します。つまり、サービス (XML、JSON、またはその他) を実装します。変異体)。