質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

19006閲覧

javascript でプロパティファイルの値を取得する方法

Waki-y

総合スコア11

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2018/05/25 02:49

編集2018/05/25 05:09

前提・実現したいこと

javascript でプロパティファイルの値を取得したい。

Javascriptで IF 文の条件においてプロパティファイルの値を用いたいのですが、プロパティの取得方法に困っています。
最近学習を初めたばかりで、語句が正しいか分かりませんが、HTMLで用いるプロパティファイルの引用方法、"#{res[’XXXXX']}"のようにJavascriptで同じように、プロパティファイルから値を取得したいと考えています。

ご教授頂けると幸いです。
よろしくお願い致します。

該当のソースコード

vd_menu_lbl_tools_tools=\u30C4\u30FC\u30EB vd_menu_lbl_tools_export=\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 vd_menu_lbl_tools_import=\u65B0\u898F\u30A4\u30F3\u30DD\u30FC\u30C8

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed facet="wst.jsdt.web"/> <installed facet="wst.jsdt.web" version="1.0"/> <installed facet="java" version="1.7"/> <installed facet="jst.web" version="3.0"/> <installed facet="jst.jsf" version="2.0"/> <installed facet="jpt.jpa" version="2.1"/> </faceted-project>

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

euledge

2018/05/25 03:04

プロパティファイルというのは Javaのプロパティファイルのことを言っていますか?
Waki-y

2018/05/25 03:11

ご回答頂きありがとうございます。恐らく、Javaのプロパティファイルではないと思います。ファイルの属性?拡張子?は「.properties」です。ご参考になれば幸いです
euledge

2018/05/25 03:14

.propertiesのファイルはどこにあるものですか?(ブラウザから見える位置にあるのでしょうか?)
euledge

2018/05/25 03:16

サーバー側含めてもう少し環境を記載してもらえると、回答しやすいです。 言語、フレームワークなど
Waki-y

2018/05/25 03:22

.propertiesのファイルは、ローカルサーバー(自分のコンピュータ)のEclips内に保存しています。ブラウザー(Chrome・Safari)から見ることが出来ず、Eclips内で確認が出来ます
Waki-y

2018/05/25 03:25

該当のソースコードに記載したのですが、上記の形式で値を格納してます
euledge

2018/05/25 03:45 編集

まず, eclipseで開発しているとのことですが、プロジェクトはjavaのプロジェクトですか?springとか使用してますか?また.propertiesファイルのあるフォルダの階層はどのような階層でしょうか?
Waki-y

2018/05/25 04:21

フォルダー階層を確認したところsrc/main/resouces でした。
Waki-y

2018/05/25 04:26

プロジェクトは、javaのプロジェクトではないと思われます。また、springは使用していません。
euledge

2018/05/25 04:29

ということは Javaで開発してますよね? いったん回答に移りますが、解決にはもう少し情報がほしいです. 使用しているフレームワークの情報を記載してください
Waki-y

2018/05/25 04:29

情報不足で、ご迷惑おかけし、申し訳ありません。
Waki-y

2018/05/25 04:41

無知で恥ずかしい限りですが、フレームワークを確認する方法を教えて頂けませんでしょうか?
euledge

2018/05/25 04:43

質問少し見逃しました、Javaでないとするとサーバー処理は何で書いていますか?
euledge

2018/05/25 04:44

eclipseで最初にプロジェクト作成したときの手順ってわかりますか?
Waki-y

2018/05/25 04:50

申し訳ありません。サーバー処理は、JAVAで記入しています。
Waki-y

2018/05/25 04:53

自分がプロジェクトを作成していないので、存じ上げないです。すみません。何か参考になる情報を得る方法などございますか?
euledge

2018/05/25 04:53

ですよね、src\main\resourcesって言う構成でeclipseだとJavaじゃないかと思いました。
euledge

2018/05/25 04:55

もう少しがんばって フレームワークもわかりますか? 一番上の階層に pom.xml というファイルか build.gradleというファイルがないですか? そのどちらかを質問欄に載せてください
euledge

2018/05/25 05:05

載せるのが難しいならそのファイルの中に springという記述か thymeleafという記述がないでしょうか?
euledge

2018/05/25 05:12

JavaServer Faces (JSF) ですね、了解です
Waki-y

2018/05/25 05:14

先程あげたコードで大丈夫ですか?
Waki-y

2018/05/25 05:14

よろしくお願いします
guest

回答3

0

src/main/resourcesにおいてある .propertiesファイルは、サーバー側のJavaのプログラムで読むことができるファイルなので直接、ブラウザーで動くJavascriptでは読むことができません。

質問の中でHTMLに埋め込まれて参照できているというのはサーバー側のJavaのプログラムで .propertiesの値を読み込んでHTMLファイル上に値を埋め込んだ状態になります。
したがって変換されてしまった後には、変換後の文字列しかHTMLには残らない(propertiesのキーの部分がない状態)のでこれを変数としてブラウザ側で見ることはできないです。

ブラウザ側で参照するためにはサーバーで読み込んだ値をJavascriptのScriptに埋め込むなどの処理をすればよいと思いますが、お使いのフレームワークやテンプレートエンジンなどの情報がないと具体例は示すことができません。

投稿2018/05/25 04:38

euledge

総合スコア2404

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

JSF自体使用した経験がないので、適切な回答にならないかもしれませんが、

JSFのテンプレートで 一度HTML側のDOM要素として出力した後に、JavascriptでDOM要素から値を取得する
という方法ではどうでしょうか?

java

1public class HelloBean{ 2 private String vd_menu_lbl_tools_tools; 3 public void send(){ 4 this.vd_menu_lbl_tools_tools= "Hello"; 5 return "output.xhtml"; 6 } 7}

html

1<h:inputHidden id="vd_menu_lbl_tools_tools" value="#{helloBean.vd_menu_lbl_tools_tools}"/>

js

1const vd_menu_lbl_tools_tools = document.getElementById("vd_menu_lbl_tools_tools").value

投稿2018/05/25 06:12

euledge

総合スコア2404

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

JSF使ってないので、思いつきませんでしたが、以下のコード試してみてください。
これでできるかも

html

1 <h:outputScript> 2 var vd_menu_lbl_tools_tools = '#{helloBean.vd_menu_lbl_tools_tools}'; 3 </h:outputScript>

【参考】
stackoverflow - How include Facelets page as javascript file into Facelets page

投稿2018/05/25 06:23

euledge

総合スコア2404

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問