私はこのようなものを含む例見てきた:WicketのResourceReferenceとは何ですか?どのように動作しますか?
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
dirにイメージファイルがある場合は、ファイル、そのパス、またはファイル内容のバイトストリームに参照をどのように「添付」しますか? Webアプリケーションでリソースを読み取る方法があれば、これは便利かもしれませんが、できません。それはクラスパスの中だけです。
webapp/games/someGame.swf
の内容を「マウント」できるようにして、WebアプリケーションのSWFにWicketページでアクセスできるようにするか、何らかのハンドルを取得することができます。
これは感謝しています。したがって、パラメータ名は正しくないので、 "path"または "filename"と呼びます。パスがクラスの場所(おそらく/ com/something/package)の場所からの相対パスである場合、webapp内のファイルをどのように参照するのですか?常に保持されています(とにかく)。これは要点です。webappのgamesディレクトリにあるswfファイルのハンドルを取得したいのですが、これを行うための方法を見つけることはできませんでした。したがって、ResourceReferenceの初期の関心事です。 – wingnut
'name'は 'scope'(クラス)の場所に相対的なパスです。これは、ファイルシステム上で物理的にどこに存在するかについて、クラスパッケージ名によって決まります。 nameパラメータは、ディレクトリツリーをさらに上に移動するための '../ ..'表記のような巧妙なものをサポートしていません。だからあなたのリソースは、クラスファイルの場所に相対的でなければなりません。 ところで私が言ったその本を手に入れることを本当に勧めます。それはとても良いことです。 –
注[ResourceReference](http://www.jarvana.com/jarvana/view/org/apache/wicket/wicket/1.5-M1/wicket-1.5-M1-javadoc.jar!/org/apache/wicket/request /resource/ResourceReference.html)は抽象クラスであり、インスタンス化できません。 – TOUDIdel