質問

いくつかのJavaScriptファイルをパッケージの1つに入れて、Strutsに/struts/js/foo.jsのように提供させたい

Strutsは、「テンプレート」パッケージ内のファイルに対してこれを行います(jQueryプラグインのファイルが配置され、struts.ui.templateDirオプションによって保護されます)。ただし、これらのファイルを別のパッケージに入れたいと思います。struts.ui.templateDirを再定義すると、テンプレートが見つからないため、strutsは機能しなくなります。

問題は、Strutsにorg.foo.some.package.jsのファイルを/struts/js/whatever.jsとして提供するように指示する方法です。

役に立ちましたか?

解決

Struts2は、すぐに使用できる静的コンテンツを提供できます。デフォルトでは、静的コンテンツは、DefaultStaticContentLoaderの実装であるStaticContentLoaderによって提供されます。次のパッケージを自動的に検索します。

  • org.apache.struts2.static
  • テンプレート
  • 静的
  • org.apache.struts2.interceptor.debugging

    「packages」という名前のfilterinitパラメーターで検索するパッケージを追加できます。 ジェネラコディセタグプレ

    複数のパッケージを追加したり、カンマ、スペース、タブ、または改行を区切り文字として使用したりできます。

    BTWでは、この定数を使用して、静的コンテンツがブラウザによってキャッシュされるかどうかを制御できます。 ジェネラコディセタグプレ

他のヒント

1つの方法は、テンプレート全体を拡張し、すでに提案したようにtemplateDirを変更することです。カスタムテンプレートを実装する必要がない限り、これは非常にやり過ぎです。

しかし、IMHOの最善の方法は、/struts/js/foo.jsを忘れて、他のURLを使用してjsをロードすることです。

いくつかのサンプル:

JSP ジェネラコディセタグプレ

ストラット ジェネラコディセタグプレ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top