2011-06-06 2 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> 

ПРИМЕЧАНИЕ: Не волнуйтесь о синтаксисе это не полный код.

Как я могу это сделать с помощью EL и JSTL

ответ

2

Вы должны использовать java.util.Properties вместо java.util.ResourceBundle. 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); 

Properties Поскольку орудия java.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

Смежные вопросы