私のウィケットアプリケーション設定で、ルートにユーザー名パラメーターをマウントしたい
mountPage (Profile.class, "/${username}") は、Twitter がユーザー名をアカウントにマップする方法と似ています。wicket では、これによりリソース ロケーション アルゴリズムがクラッシュするようです。すべての css、js ファイルが 404 でロードされるようになったという意味で。
これを回避する方法はありますか?
私のウィケットアプリケーション設定で、ルートにユーザー名パラメーターをマウントしたい
mountPage (Profile.class, "/${username}") は、Twitter がユーザー名をアカウントにマップする方法と似ています。wicket では、これによりリソース ロケーション アルゴリズムがクラッシュするようです。すべての css、js ファイルが 404 でロードされるようになったという意味で。
これを回避する方法はありますか?
martin-g に感謝します。URL セグメントを 1 に設定して MountMapper をオーバーライドし、他のリソースにマップされないようにします。
public class UsernameMountUrlMapper extends MountedMapper {
public UsernameMountUrlMapper(String mountPath,
Class<? extends IRequestablePage> pageClass) {
super(mountPath, pageClass);
}
@Override
protected boolean urlStartsWithMountedSegments(Url url) {
return url.getSegments().size() == 1 && !url.getPath().equals("favicon.ico") && !url.getPath().equals("oops") && !url.getPath().equals("Index");
}
}
コードは次のようになりますmountPage (Profile.class, "/${username}")
。追加した$に注意してください。これは、名前付きパス パラメータが必須であることを意味します。
これで問題が解決しない場合は、問題の詳細をお知らせください。