Wicket ListPanel に問題があります。ListPanel 全体が、同じページで定義されたフィルターから Ajax を介して更新されます。このスキーマは、通常の状況では非常にうまく機能します。
ListPanel の一部は、適切に機能するためにいくつかの特定の JS および CSS ファイルを必要とするコンポーネントです。これらは、特定のコンポーネントの wicket:head セクションで宣言されています。
ページが初めてロードされ、リストに少なくとも 1 つの項目がある場合、すべて正常に機能します。ただし、ページのレンダリング時にリストが空の場合、ListPanel の子コンポーネントは読み込まれず、CSS/JS インポートは考慮されません。その後、AJAX 要求で DIV を更新すると、そのコンポーネントの wicket:head セクションが再読み込みされないため、Javascript コードが壊れます。
私の推測では、Wicket は通常のページ レンダリング中に wicket:head セクションを考慮しますが、コンポーネントが AJAX を介して更新されるときは考慮しません。
それで、私の質問は、リソースを直接使用しないコンポーネントにインポートをプッシュすることなく、必要なリソースを取得するための良いアプローチは何でしょうか? それらを他のコンポーネントにプッシュするか、ページが仕事をすることは知っていますが、それがきれいだとは本当に思いません。そこにロードされるだけです。