質問

私はしばらく Struts を使って作業してきましたが、終了中のプロジェクトでは、メインの WAR ファイルからテンプレート (velocity .vm ファイル)、構成 (struts.xml、persistence.xml) を分離するように求められました。

次のようなデフォルトの構造がすべてあります。

    application
    |-- メタINF            -- Some configs are here
    |-- WEB-INF             -- others here
    |   |-- classes
    |   |   |-- META-INF
    |   |   `-- mypackage
    |   |       `-- class-files
    |   `-- lib
    |-- css
    `-- tpl                 -- Template dir to be relocated

そして、テンプレートの配置先と構成ファイルの配置方法に関するドキュメント (おそらく struts.xml 内) が見つからないようです。

アプリケーションサーバーでも設定を使用する必要があると思います(私はJetty 5.1.14を使用しています)。

それで、それを構成する方法について何か分かりましたか?

ありがとう


テンプレートの場所を変更するということは、デザイナーがアクセスできる領域にテンプレートを配置することなので、変更が必要な場合でも、デザイナーはテンプレートを自分のコンピューターにロードし、編集し、再度アップロードすることができます。これは一般的なシナリオだと思います。したがって、おそらく私の研究には何かが欠けています。もしかしたら、間違った場所で設定に集中しているのかもしれません...何かご意見は ?

役に立ちましたか?

解決

Struts 構成ファイルに関する質問が正しく理解できていれば、それらは web.xml で指定されています。Struts サーブレット構成パラメータを見つけます。param-value には、ロードする XML ファイルのカンマ区切りのリストを指定できます。例えば:

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>
            WEB-INF/config/struts-config.xml,
            WEB-INF/config/struts-config-stuff.xml,
            WEB-INF/config/struts-config-good.xml,
            WEB-INF/config/struts-config-bad.xml,
            WEB-INF/config/struts-config-ugly.xml
        </param-value>
    </init-param>
    ...
</servlet>

これを参照してください ストラットガイド 5.3.2に基づく。はい、これは 2.x にも当てはまります。

他のヒント

のために 永続性.xml, 具体的には、永続化ユニットを別個の JAR に配置して、Web アプリケーション WAR とは別にデプロイすることも、アプリケーション サーバーがサポートする内容に応じて両方を EAR アーカイブに一緒にデプロイすることもできます。たとえば、JBoss マニュアルではこれについて次のように説明されています。 EJB3 JAR を使用した EAR のデプロイ.

のために struts-config.xml 標準以外の場所を使用したい場合は、それをロードする Struts コードをオーバーライドする必要があると思います。

Velocity テンプレートについてはわかりません。

一般に、Web アプリケーションは、セキュリティ上の理由から、WAR 内からリソースのみを読み込みます。他にも使用できるテクニックはありますが、試してみるほうが簡単かもしれません 小冊子, 、これは別の JAR からリソースをロードできるように設計されたフレームワークのようです。

調べてみる必要があります velocity.properties WEB_INF フォルダー内のファイルです。私見ですが、変更する必要があるのはここです。 テンプレートルート プロパティを変更する file.resource.loader.path.

それが役立つことを願っています、Petr

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