WOResourceManager と CSSファイル。

 WebObjectsは今のところ懐かしのHTML3.2対応という状態で、WebObjects用のHTMLエディタであるところのWebObjects Builderを使いますとそんな感じのタグを出力してくれます。別にそれを貫いたところで問題ないのですけども、CSSくらいは使いたいですよね、楽するために。さらに、どうせなら何かと便利な外部ファイル参照方式で適用させたいところですよね。思いっきり私の主観ですが。
 外部ファイルのスタイルを適用させるには、そのファイルのURLをlinkタグで指定すればいいだけの話ですので、適用させたいCSSファイルをインターネット上に置いて自前で静的にlinkタグを記述しても同様の事は可能なのですが、開発中だと何かと不便だったり面倒だったり取り扱いに難儀なのでプロジェクトに含める方向でいきます。WebObjectsには、プログラム的に直接関係しないリソースをWebサーバ経由で扱う仕組みも用意されているので、それを利用します。

 適用させたいCSSファイル、仮にdefault.cssをプロジェクトの“Web Server Resources”グループに含ませます。このグループに含まれているファイルは、開発時には直接参照され、インストール時にはWebサーバのDocumentRoot以下の適切な場所に配置される様になります(←私は手作業でコピーとかしてインストールするのであまり恩恵を受けていませんけど)。
 後はこのファイルへアクセスできるURLさえわかればOKですが、そんなメソッド、WOResourceManagerクラスの

public java.lang.String urlForResourceNamed(java.lang.String aResourceName, java.lang.String aFrameworkName, NSArray aLanguagesList, WORequest aRequest)

 もちゃんと用意されています。WOResourceManagerはWOApplication経由で参照できまして、WORequestはWOContext経由で参照できます。そしてWOComponentは使用中のWOApplicationとWOContextのインスタンスをそれぞれapplication()、context()というメソッドで参照できますから、

application().resourceManager().urlForResourceNamed("default.css", null, null, context().request())

 と記述する事ができます。

 こんな感じで取得した文字列をlinkタグに含ませて出力させれば終了。ちなみに私は、WOGenericContainerを使ってlinkタグをでっち上げてます。