2016-12-13 2 views
1

基本的には、JSPの新しいものと可能なものを考えてください。私は別々のURLとindex.(jsp|html)ページを持つ4つのWebアプリケーションダッシュボードをスタンドアロンのスイートに取り組んでいます。 Javaで書かれたダッシュボードのバックエンドは、さまざまな味で構築でき、さまざまな環境に展開できます。いくつかの魔法を使うと、WEB-INF/classes.propertiesというファイルが存在することがあります。ビルドフレーバーやデプロイメント環境などのシステム情報(UIが知る必要があるもの)を取得するために使用できます。Javascriptがロードされる前に、どのようにプロパティファイルからJSPにシステム情報をロードできますか?

共有UI JavaScriptでUI

をシステム情報を取得する現在のソリューションは、我々は、プロパティファイルを読み込み、JSP、メインスレッド上で同期AJAX呼び出しをブロッキングを行う、と返していますJSONの情報を呼び出し元に送信します(下記のファイル)。 メインスレッドでこの同期AJAX呼び出しを削除しようとしていますが、代わりにには、AJAXを実行せずに、その情報をJavascriptで利用できるようになっています。

質問

私が代わりにそれを取得するためのAJAX呼び出しを加えることなく、アクセスするには、WebブラウザでJavaScriptのためのページですでに利用可能な情報を持っているJSPとサーブレットを使用することができますどのように?そして、そのソリューションをすべてのダッシュボードで共有するにはどうすればいいですか?理想的には、すべてのindex.jspファイルにJSPコードを複製する必要はありませんか?

参考までに、現在使用しているJSPは以下のとおりです。このJSPに対してAJAX呼び出しを行い、そのJSON応答からの情報をグローバル状態変数に格納して、ダッシュボードにアクセスします。

<%@page language="java" contentType="application/json; charset=UTF-8" pageEncoding="UTF-8" %> 
<%@page import="java.io.InputStream" %> 
<%@page import="java.util.*" %> 
<%@page import="com.google.gson.Gson" %> 

<% 
    // Read properties file 
    Properties p = new Properties(); 
    p.load(application.getResourceAsStream("/WEB-INF/classes/system.properties")); 

    Map<String, String> m = new HashMap<~>(); 
    m.put("id", p.getProperty("system.id", "unknown")); 
    m.put("type", p.getProperty("system.type", "unknown")); 

    // Write JSON response 
    out.write(new Gson().toJson(m)); 
    out.flush(); 
%> 

ありがとうございました!私の上で簡単に行く...私は新しいです。

答えて

1

あなたはあなたのプロパティの値が常にJSPのJavaコードで

を使用するJSPファイル内のJavaスクリプト変数にして、Javaプロパティの値を割り当て、そのJavaでスクリプト変数を使用して、コードの下

試すことができます最初に実行し、javascriptコードをJavaコードとして実行します。ブラウザ上でjavascriptが実行されるサーバー上で実行されます。

<%@page language="java" contentType="application/json; charset=UTF-8" pageEncoding="UTF-8" %> 
<%@page import="java.io.InputStream" %> 
<%@page import="java.util.*" %> 


// javascript block 
<script language="javascript"> 
<% 
    // Read properties file 
    Properties p = new Properties(); 
    p.load(application.getResourceAsStream("/WEB-INF/classes/system.properties")); 
%> 
    var sysId="<%=p.getProperty("system.id", "unknown")%>"; 
    var sysType="<%=p.getProperty("system.type", "unknown")%>"; 
    // user javascript variable sysId, sysType where you want 
</script> 
関連する問題