2012-03-23 11 views
0

"domain"というモデルに格納されているオブジェクトは、getDescriptionEn()とgetDescriptionFr()という2つのメソッドを持っています。ヘルプが必要ですモデルから値を取得するためにjavascriptでELを使用する

現在のロケールに応じて説明が必要です。ここで

は私の問題であり、私は次のようしている:

var locale = "${currentLocale}"; // This returns either "En" or "Fr" 

var method = "{domain.getDescription".concat(locale).concat("}"); // This is "{domain.getDescriptionEn}" or "{domain.getDescriptionFr}" 

var expr = "$".concat(method); // This is going to be "${domain.getDescriptionFr}" 

を今私はこのexpressoinを評価したいと思いますが、動作するようには思えません。

var method = "domain.getDescription".concat(locale); // This is "domain.getDescriptionEn" or "domain.getDescriptionFr" 

var expr = "${".concat(method).concat("}"); 

答えて

2

使いのブラウザではJavaScriptが一緒に(JSPが既に評価されているクライアント上で実行する機会を得る時までに:私も試した

私は多くの異なる方法で文字列を解析しようとしています、どんなELでも)あなたはそのようにモデルにアクセスすることはできません。

しかし、JSPで直接すべてを行うことができます。 ${pageContext.request.locale}を使用して、クライアントの要求のロケールにアクセスし、そのメソッドに渡します。

+0

ロケールに応じてdomain.getDescriptionEnまたはdomain.getDescriptionFrにアクセスする必要がありますが、JavaScript関数内からJSPからアクセスする必要があります。 –

+0

しかし、JSPコードはクライアントに送信される前にサーバーで実行され、サーバーによって応答(すべてのJSPコードがすでに実行されている)が受信された後で、クライアントによってJavaScriptが実行されることがわかります。 説明でJS内にvarが必要な場合は、次のようにすることができます。var description = <%= domain.getDescription(currentLocale)%>; –

+0

はい、わかりました。ご協力いただきありがとうございます –

関連する問題