3

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

私は次のようなデフォルトの構造をすべて持っています:

    応用
    |-- META-INF             -- いくつかの設定はここにあります
    |-- WEB-INF              -- その他はこちら
    | | |-- クラス
    | | | | |-- メタ INF
    | | | | `-- mypackage
    | | | | `-- クラスファイル
    | | ` -- lib
    |-- css
    `-- tpl                  -- 再配置するテンプレート ディレクトリ

また、テンプレートの場所や構成ファイルの場所を設定する方法 (おそらく struts.xml 内) に関するドキュメントが見つからないようです。

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

それで、それを設定する方法についてのライトはありますか?

ありがとう


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

4

3 に答える 3

1

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>

このStruts ガイドの 5.3.2 を参照してください。はい、これは 2.x にも当てはまります。

于 2008-10-24T18:27:11.583 に答える
0

特に、 persistence.xmlの場合、永続性ユニットを別のJARに配置できます。これは、アプリケーションサーバーがサポートするものに応じて、WebアプリケーションWARとは別に、または両方をEARアーカイブに一緒にデプロイできます。たとえば、JBossのマニュアルでは、これを「EJB3JARを使用したEARのデプロイ」と説明しています。

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

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

一般に、Webアプリケーションは、セキュリティ上の理由から、WAR内からのみリソースをロードします。使用できる手法は他にもありますが、 Webletを試す方が簡単な場合があります。これは、別のJARからリソースをロードできるように設計されたフレームワークのようです。

于 2008-08-30T10:30:48.480 に答える
0

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

お役に立てば幸いです、ペトル

于 2008-10-13T15:24:28.477 に答える