2011-06-06 120 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.ResourceBundleResourceBundle提供了一个完全不同的目的,它不应该被滥用来加载属性的“简单方法”,因为它默认从类路径中查找资源。

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调用servlet来显示它。

请注意,ResourceBundle不实施java.util.Map

+0

@BaluC - 谢谢! – user620339 2011-06-07 13:48:07

+0

不客气。 – BalusC 2011-06-07 13:49:56