Struts 2でプロパティファイルを配置する場所? -- properties フィールド と struts2 フィールド と localization フィールド 関連 問題

Where to put a properties file in Struts 2?












7
vote

問題

日本語

私は、JavaのWebプロジェクトのルートにプロパティファイルを配置しています。私は支柱を使っています2。 私のコードはプロパティファイルを読み取ることができません。プロパティファイルをどこに置いてください。

デフォルトパスをチェックしました、それは私のEclipseがインストールされている場所です。しかし、私はそのシステムがプロジェクトフォルダ自体からファイルを読み取るべきです。

英語

I have a property file placed in the root of the web project in Java. I am using Struts 2. My code is unable to read properties file. Where should I keep my properties file?

I have checked default path , it is where my Eclipse in installed. But I want that system should read file from project folder itself.

</div
        

回答リスト

5
 
vote

通常、アプリケーションがプロパティファイルを読み取ることができるように、プロパティファイルを src フォルダに配置する必要があるため、プロパティファイルは src classes フォルダへのコード>フォルダ。 classes フォルダを知っている限り、プロジェクトの出力フォルダになる必要があるため、<コード> classpath フォルダとして使用され、アプリケーションはプロパティファイルをロードすることができます。 classpath

クラスパスからプロパティを取得するための例:

<事前> <コード> Properties prop = new Properties(); try { //load properties from the class path prop.load(this.getClass().getClassLoader().getResourceAsStream("myproperties.properties")); //get the property System.out.println(prop.getProperty("mykey")); } catch (IOException ex) { ex.printStackTrace(); throw ex; }

しかし、ファイルシステム上のファイルへのパスを知っている場合は、この場合は

を使用する場合は、プロパティをロードできます。 <事前> <コード> prop.load(new FileInputStream("/path/to/myproperties.properties"));

<コード> struts.properties

について話している場合

フレームワークは、適合に変更できる多数のプロパティを使用します あなたの要望。これらのプロパティを変更するには、プロパティを指定します struts.propertiesファイル内のキーと値。プロパティファイルはできるようになります クラスパス上のどこにでも場所を見つけますが、通常は下にあります。 / Web-INF /クラス。

メッセージリソースのプロパティを探している場合<コード> src0 または src1 に設定できる場合は、後でプロファイリングされます。

<事前> <コード> src2

値はfilePath <コード> src3

です。

アプリケーションを設定するための適切な方法を探している場合は、 easyconf を使用する選択肢を検討しています。

 

Usually you should put the properties file to the src folder so your application is able to read the properties file when you do run your application the properties file is copied from the src folder to the classes folder. As far as you know the classes folder should be the project output folder, so it will be used as a classpath folder and application is able to load the properties file if it is on the classpath.

An example to get properties from the classpath:

Properties prop = new Properties();  try {   //load properties from the class path   prop.load(this.getClass().getClassLoader().getResourceAsStream("myproperties.properties"));    //get the property    System.out.println(prop.getProperty("mykey"));  } catch (IOException ex) {   ex.printStackTrace();   throw ex; } 

However, you can load properties if you know the path to the file on the filesystem, in this case use

prop.load(new FileInputStream("/path/to/myproperties.properties")); 

If you are talking about struts.properties

The framework uses a number of properties that can be changed to fit your needs. To change any of these properties, specify the property key and value in an struts.properties file. The properties file can be locate anywhere on the classpath, but it is typically found under /WEB-INF/classes.

If you are looking for Message Resource properties it could be configured in the struts.properties or struts.xml the later is proffered.

<constant name="struts.custom.i18n.resources" value="path/to/resources/MessageResources"/> 

the value is a filepath src/path/to/resources/MessageResources.properties

If you are looking for the proper way to configure your application consider the choice to use EasyConf.

</div
 
 
 
 
5
 
vote

プロパティファイルは一般的にGo:

  1. クラスパス上、例えばリソースとして開くための、または
  2. クライアントにアクセスできない場所で、例えば /WEB-INF
  3. これはあなたのニーズに応じてより適切に異なります。 ClassPathベースのファイルは、設定なしでバンドルされたデフォルトプロパティファイルを許可します。たとえば、Log4jは、クラスパスのルートでデフォルトの設定ファイルとして log4j.properties を探します。

    ただし、クラスのロード順序によっては、これが問題につながる可能性があります。システムは「ストレイ」設定ファイルを拾うことができます。自分で設定することはまだ望ましいかもしれません。私はまだclasspathに向かって傾向がありますが、設定ファイルは WEB-INF にも一般的にあります。どちらの方法でも、両方のスタイルをJNDI、INIT PARAMS、環境変数、またはシステム変数(例えば、<コード> -D )を使用して設定できます。
 

Property files will generally either go:

  1. on the the classpath, e.g., for opening as a resource, or
  2. at a location inaccessible to clients, e.g., under /WEB-INF

Which is more appropriate depends on your needs. Classpath-based files allow bundled default property files without configuration. For example, Log4J will look for log4j.properties at the root of the classpath as its default configuration file.

This can occasionally lead to issues, however, depending on class loading order: sometimes the system can pick up a "stray" config file. Configuring it yourself may still be preferable; I still tend towards the classpath, but config files are also commonly found in WEB-INF. Either method works, and both styles can be configured using JNDI, init params, environment variables, or system variables (e.g., -D).

</div
 
 
4
 
vote

SRCフォルダ(Build Projectの後にWeb-INF /クラスで見つけた後)でMyPropertyFile.propertiesファイルを保持し、このコードを使用してアクセスします。

<事前> <コード> Properties prop = new Properties(); ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); prop.load(classLoader.getResourceAsStream("/myPropertyFile.properties"));
 

Keep your myPropertyFile.properties file in src folder (after build project you will find it in WEB-INF/classes) and access them using this code:

  Properties prop = new Properties();   ClassLoader classLoader = Thread.currentThread().getContextClassLoader();   prop.load(classLoader.getResourceAsStream("/myPropertyFile.properties")); 
</div
 
 
-1
 
vote

理想的には、プロパティファイルを保存することができます。 / SRC / COM / CFT / WEB / BUNDLE /。 お気に入り、 /src/com/cft/web/bundle/LabelResources.properties. また /src/com/cft/web/bundle/ApplicationResources.properties

実際には、あなたが好きなパスを何でも与えるためにあなた次第です。

web.xml / struts-config.xml

で正しい完全なパスを追加するだけで忘れないでください。

EX = gの場合。 1. web.xmlで:

 <コード>   <description>Application Resources</description>    <env-entry-name>ApplicationResources</env-entry-name>    <env-entry-value>com.cft.web.bundle.ApplicationResources</env-entry-value>    <env-entry-type>java.lang.String</env-entry-type>  
  1. struts-config.xml
  2. <プリクラス= "Snippet-Code-HTML LANG-HTML Prettyprint-Override"> <コード> <message-resources parameter="com.cft.web.bundle.LabelResources" key="yourPropertiesFileName"/>
 

Ideally, you can save properties files in: /src/com/cft/web/bundle/. like, /src/com/cft/web/bundle/LabelResources.properties OR /src/com/cft/web/bundle/Applicationresources.properties.

in fact its up to you to give whatever the path you like.

Just remember to add the correct complete path in web.xml/struts-config.xml

for ex=g. 1. in web.xml :

  <description>Application Resources</description>    <env-entry-name>ApplicationResources</env-entry-name>    <env-entry-value>com.cft.web.bundle.ApplicationResources</env-entry-value>    <env-entry-type>java.lang.String</env-entry-type>
  1. In Struts-config.xml

<message-resources parameter="com.cft.web.bundle.LabelResources" key="yourPropertiesFileName"/>
</div
 
 
 
 

関連する質問

16  プロセス全体のCurrentCulture(現在のスレッドだけでなく).NETのCurrentCultureを変更できますか?  ( How can i change the currentculture of the entire process not just current thre ) 
私は私が私のプロセスのロケールをen-usに設定する必要がある状況を持っています。 現在のスレッドのためにこれを行う方法を知っています: <事前> <コード> System.Threading.Thread.CurrentThread.CurrentCultu...

1  Flex 3ローカライゼーション:ロケールを削除します  ( Flex 3 localization removing a locale ) 
私はまだドキュメントとオンラインでポークを付けていますが、私はそれに遭遇した将来の人々のためにここでこれを尋ねると考えました。 ローカライズのためにCopylocaleを使用して、私は "fr_fr"の代わりに字型(例えば "en_fr"を作り、誤って望まな...

273  C#でローカライズを使用する方法  ( How to use localization in c sharp ) 
私は働くためにローカライズを受けるように思われることはできません。 クラスライブラリを持っています。これで、そこに resx ファイルを作成し、スレッド文化に基づいていくつかの値を返します。 どうすればいいですか? ...

2  ASP.NET User Controlのための一般的なローカルリソースツール  ( Asp net general local resource tool for user control ) 
Visual Studioメニューツールを使用した場合 - &gt。ローカルリソースを生成し、コントロールにメタ属性を追加してASPXファイルを変更しました。しかし、それは私が作成したユーザーコントロールのためにそうしません。 たとえば、ページにコントロール...

2  C#日付 - データベース、表示とローカライゼーション  ( C sharp dates databases display and localization ) 
いくつかの日付(&amp;時間)は、新しいアプリケーションでのローカライズを遵守したい場合のベストプラクティスをフォーマットします。 たとえば、データベースに日付を書き込むためにどのような形式を使用しますか。 データベースから日付が取得されたら、自分のロケー...

5  RightToleFtLayoutを作成する方法groupboxとパネル内のコントロールのために機能しますか?  ( How to make righttoleftlayout work for controls inside groupboxes and panels ) 
MSDN によると <事前> <コード> form.RightToLeftLayout = True; form.RightToLeft = ifWeWantRTL() ? RightToLeft.True : RightToLeft.False; R...

6  iPhoneと右から左へのテキスト  ( Iphone and right to left text ) 
uitextviewでRTLテキスト(例えばアラビア語)を表示できますか? ...

1  デザイナーの文化を変更するときに自動的に作成されたリソースファイルが自動的に作成されないのはなぜですか?  ( Why arent the localized resource files created automatically when changing the ) 
現在、フォームのローカライズに取り組んでいます。しかし、私はどれだけ正しくこれを行うかについてやや混乱しています。 自動的にコントロールプロパティをリソースファイルにエクスポートすることが可能であると考えましたが、これは手動タスクです。 マイの現在のアプローチ...

2  WinFormsアプリケーションとその後のUIの変更のローカライズ  ( Localization of a winforms app and later ui changes ) 
VS2008を使用してWinForms 2.0アプリケーションを開発しています。ローカライズ可能プロパティをDesignerなどでTrueに設定することで、Visual Studioでアプリをローカライズする方法について読んでいます。 あなたの経験について尋...

47  あなたのプロジェクトにおける国際化  ( Internationalization in your projects ) 
あなたが働いた実際のプロジェクトで国際化(I18n)をどのように実装しましたか? ジョエルによる有名な投稿を読んだ後、ソフトウェアのクロス文化の作りに興味を持っていました。絶対最小すべてのソフトウェア開発者が絶対に、Unicodeと文字セットについて積極的に知...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有