次のようなものを含む例を見てきました。
mountSharedResource("/images/logo.gif", new ResourceReference(ImageScope.class,
"logo.gif").getSharedResourceKey());
mountSharedResource("/resource",
Application.class.getName() + "/" + resourceKey);
しかし、Javadoc はコンストラクターについて次のように述べています。
ResourceReference(java.lang.Class<?> scope, java.lang.String name);
したがって、 を作成するときはResourceReference
、クラスを指定します。なんで?通常、作成したばかりのオブジェクトのグローバル スコープまたはスコープのいずれかが必要ですResourceReference
よね?
また、何name
ですか?ですかsharedResourceKey
?そうでない場合、はresourceKey
どこから来たのですか?それはどのように生成され、なぜ名前ではないのですか? またはname
、クラスパスで検索され、魔法のようにロードされます (クラスパスにその名前のファイルが 1 つしかないと仮定します。複数ある場合はどうなりますか?)? その名前のファイルをロードする場合、Javadoc でそう言わないのはなぜですか?
実際にこれに物理リソースをどのように割り当てますResourceReference
か? ありますが、getResource()
見逃しているようですsetResource()
。たとえば、ディレクトリに画像ファイルがある場合webapp
、ファイルへの参照、そのパス、またはファイルの内容のバイトストリームをどのように「添付」しますか? Web アプリケーションでリソースを読み取る方法があれば、これは便利かもしれませんが、できません。それはクラスパスにのみあります。
たとえば、コンテンツを「マウント」してwebapp/games/someGame.swf
、Web アプリケーションの SWF に Wicket ページからアクセスできるようにしたり、何らかのハンドルを取得したりできるようにしたいと考えています。