转:opencms api 读取资源

来源:互联网 发布:如何装饰淘宝店铺 编辑:程序博客网 时间:2024/05/21 21:33

<%@ page session="false" %>
 <%@ taglib prefix="cms" uri="
http://www.opencms.org/taglib/cms" %>
 
 <jsp:useBean id="cmsbean" class="org.opencms.jsp.CmsJspBean">
   <% cmsbean.init(pageContext, request, response); %>
 </jsp:useBean>
 
 <%
   long minSize= (request.getParameter("minSize")==null?(long)500:Long.parseLong(request.getParameter("minSize").trim()));
   org.opencms.file.CmsObject cms = cmsbean.getCmsObject();
   org.opencms.file.CmsResourceFilter filter = org.opencms.file.CmsResourceFilter.ALL;
   java.util.List al = cms.readResources("/",filter);
 %>
 
 <cms:include property="template" element="head" />

 <form action="" method="GET">
    How many minimum bytes would you like to specify?
    <input name="minSize" type="text" id="minSize" size="10" maxlength="10"
value="<%=(request.getParameter("minSize")==null?"500":request.getParameter("minSize"))%>"/>
    <input type="submit">
 </form>
 <br/>
 <table border=1 cellpadding=1 cellspacing=0 align="center" style="font-size:9px;">
  <tr>
    <th>Resource</th>
    <th>Size</th>
    <th>User</th>
    <th>Created By</th>
  </tr>
 <%
  for (int i=0;i<al.size();++i){
  org.opencms.file.CmsResource ress = null;
  long size = 0;
  try{
   ress = cms.readResource(cms.getSitePath((org.opencms.file.CmsResource)al.get(i)));
   size = ress.getLength();
  }catch(Exception e){
  }

  if (size>minSize){
 %>
          <tr>
              <td style="font-size:9px;"><%= cms.getSitePath((org.opencms.file.CmsResource)al.get(i)) %></td>
              <td style="font-size:9px;"><%= addCommas(String.valueOf(size)) %></td>
              <td style="font-size:9px;"><%= cms.readUser(((org.opencms.file.CmsResource)al.get(i)).getUserLastModified()).getFullName() %></td>
              <td style="font-size:9px;"><%= cms.readUser(((org.opencms.file.CmsResource)al.get(i)).getUserCreated()).getFullName() %></td>
          </tr>
 <%     }
  }
 %>
 </table>

 <cms:include property="template" element="foot" />
 
 <%!
 String addCommas(String usedS){
   String newNum = "";
   int count = 0;
   for (int i = usedS.length()-1; i>=0;--i){
   String oneChar = usedS.substring(i,i+1);
   if (count == 3){
    newNum += ",";
    newNum += oneChar;
    count = 1;
   }else{
    newNum += oneChar;
    ++count;
   }
  }
  usedS = "";
  for (int i = newNum.length()-1; i >= 0; --i){
   String oneChar = newNum.substring(i,i+1);
   usedS += oneChar;
  }
  return usedS;
 }
 %> 


1. org.opencms.file.CmsObject cms = cmsbean.getCmsObject();
   CmsObject提供了对OpenCme VFS资源的认证式访问
2.  org.opencms.file.CmsResourceFilter filter = org.opencms.file.CmsResourceFilter.ALL;
      可以利用CmsResourceFilter对资源结果集进行过滤
      CmsResourceFilter.ALL                          显示所有的资源
      CmsResourceFilter.ALL_MODIFIED          显示所有被修改的资源(new/changed/deleted)
      CmsResourceFilter.DEFAULT                  显示online项目中的资源
      CmsResourceFilter.DEFAULT_FOLDERS   显示online项目中的文件
      CmsResourceFilter.IGNORE_EXPIRATION 忽略release date和expiration date的限制,显示所有的资源
      CmsResourceFilter.ONLY_VISIBLE           仅显示对当前用户可见的资源
      CmsResourceFilter.ONLY_VISIBLE_NO_DELETED  仅显示对当前用户可见、并且没有被删除的资源

3.  java.util.List al = cms.readResources("/",filter);
     在当前站点的根目录下,利用指定的过滤器读取资源

4.  ress = cms.readResource(cms.getSitePath((org.opencms.file.CmsResource)al.get(i)));
   cms.getSitePath(CmsResource resource) 获得指定资源在站点下的路径
      cms.readResource(String absolutePath) 获得指定路径的资源

5.  size = ress.getLength();
      获得资源的大小

6.  addCommas(String.valueOf(size))
      资源的大小转换为千分位格式

7.  cms.readUser(((org.opencms.file.CmsResource)al.get(i)).getUserLastModified()).getFullName()
     CmsResource.getUserLastModified() 获得最后修改该资源的用户名
     cms.readUser(String userName) 根据用户名获得用户对象
     CmsUser.getFullName()  获得用户的全名

原创粉丝点击