2011-06-06 14 views
1

プロパティファイルからjspテーブル(キー、値)を作成する最良の方法は何ですか?プロパティファイルを使用してjspテーブルを作成する

今私は、スクリプトレット.....

ResourceBundle statusCodes = ResourceBundle.getBundle("statuscode");  
Enumeration statusKeys = statusCodes.getKeys(); 


    <% 
    while (statusKeys.hasMoreElements()) { 
     String key = (String) statusKeys.nextElement(); 
     String value = statusCodes.getString(key); 
%> 
<tr> 
    <td><%=key%></td> 
    <td><%=value%></td> 
</tr> 

NOTEを使用して、これをやっている:いけないが、これは完全なコードではない構文を心配します。

私はあなたが代わりにjava.util.ResourceBundlejava.util.Propertiesを使用する必要があり、この使用したELとJSTL

答えて

2

を行うことができますどのように。 ResourceBundleは、まったく異なる目的を果たします。クラスパスからのリソースをデフォルトで検索するので、プロパティをロードするのは簡単な方法であると酷使されるべきではありません。

servletをロードしてJSP用に準備します。

Properties properties = new Properties(); 
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("/filename.properties")); 
request.setAttribute("properties", properties); 
request.getRequestDispatcher("/WEB-INF/properties.jsp").forward(request, response); 

Propertiesjava.util.Mapを実装しているので、あなたはそれを反復するJSTL <c:forEach>を使用することができます。すべての反復はMap.Entryを返し、順番にgetKey()getValue()のメソッドを返します。

<table> 
    <c:forEach items="${properties}" var="property"> 
     <tr> 
      <td>${property.key}</td> 
      <td>${property.value}</td> 
     </tr> 
    </c:forEach> 
</table> 

最後に、サーブレットをURLで呼び出すと表示されます。

ResourceBundleにはjava.util.Mapが実装されていません。

+0

@BaluC - ありがとうございます! – user620339

+0

ようこそ。 – BalusC

関連する問題