3

struts 2フレームワークのjavascriptクライアント側検証機能は、struts2JARファイル内にあるjavascriptファイルを使用していることに気づきました。javascriptファイルは、フレームワークのタグを使用するだけで、どうやらJSPページに含まれるようになります。

これを行うことができれば、すべての新しいWebプロジェクト内に常にコピーしている多くのjavascriptライブラリファイルに非常に役立ちます。すべてをJARファイル内に配置すると、すべてのプロジェクトに異なるものがなくなるためです。ファイルのコピー(ご存知かもしれませんが、多くの問題が発生します)。

誰かが彼らがそれをどのようにしたか知っていますか?

4

2 に答える 2

9

さて、私は仕事から少し時間を取って、フレームワークがこれをどのように行うかを調査しました。Struts 2には、静的コンテンツを提供するための実装があることがわかりました。これは、構成ファイルstruts.propertiesでプロパティstruts.serve.staticによって構成されます

そのプロパティがtrueに設定されている場合、パス/struts/または/static/で始まるJSPページの静的コンテンツ(javascript、css、imagesなど)は、strutsFilterDispatcherおよびDefaultStaticContentLoaderと呼ばれる他のクラスによって提供されます。

例えば:

<script language="JavaScript" type="text/javascript" src="struts/someScript.js"></script>
<script language="JavaScript" type="text/javascript" src="static/otherScript.js"></script>

このjavascriptファイルは両方とも、FilterとContentLoaderによって提供されます。

デフォルトでは、ContentLoaderクラスは、Struts 2コアJAR内の2つのフォルダー(org.apache.struts2.statictemplate )でのみ要求されたファイルを検索します。

これで、ContentLoaderを他の場所でルックアップさせる方法があり、web.xmlファイルのフィルターパラメーターで次のように構成されます。

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
    <param-name>packages</param-name>
    <param-value>insert.your.package.with.static.content.here</param-value>
</init-param>
</filter>

これを見つけるのに長い時間がかかりました。この機能に関する情報はあまりありません。このドキュメントを読みたい場合は、ここのFilterDispacherクラスのStruts2 APIにあり、 「静的コンテンツの提供」と表示されています。

お役に立てば幸いです。私にとっては素晴らしい機能であり、非常によく実装されています。

于 2009-05-18T15:52:57.403 に答える
-1

必要なものは何でも.jarファイルに入れることができます。これはzipアーカイブです。jar(1)は、任意のファイルをjarに入れることができます。Antのjarタスクもファイルセットを取ります。

後で、標準のJava APIを使用して、これらの「リソース」にストリームとしてアクセスできます。

http://java.sun.com/javase/6/docs/api/java/util/ResourceBundle.html

于 2009-05-15T19:37:26.953 に答える