DSpace加強Browse功能的BrowseUtil
DSpace具備強大的Browse功能,可是唯獨換頁的功能卻只有薄弱的「next」(下一頁)跟「prev」(上一頁)。因此我寫了一支BrowseUtil來提供這方面的功能,也把[dspace-jspui-webapp]/browse/中full.jsp、single.jsp能作到的功能也加了進去,提供程式設計師在修改Browse功能時能夠有靈活的彈性。
安裝BrowseUtil
請下載以下檔案,並放置指定的位置:
- BrowseUtil.java (SkyDrive、Miroko)
[dspace-source]/dspace-jspui/src/main/java/org/dspace/app/webui/util/BrowseUtil.java - BrowseInfo.java (SkyDrive、Miroko)
[dspace-source]/dspace-jspui/src/main/java/org/dspace/browse/BrowseInfo.java - full.jsp (SkyDrive、Miroko)
single.jsp (SkyDrive、Miroko)
[dspace-source]/dspace/modules/jspui/src/main/webapp/browse/full.jsp
[dspace-source]/dspace/modules/jspui/src/main/webapp/browse/single.jsp
然後請重新編譯DSpace,作mvn package跟ant update的動作。
使用BrowseUtil
引用與建立BrowseUtil物件
在JSP檔案裡面,請輸入以下語法以引用BrowseUtil:
<%@ page import="org.dspace.app.webui.util.BrowseUtil" %>
BrowseUtil物件建立需要輸入兩個參數,個別是HttpServletRequest跟BrowseInfo(這是DSpace的Browse物件),建立範例如下;
<% BrowseInfo bi = (BrowseInfo) request.getAttribute("browse.info"); //先取得BrowseInfo物件 BrowseUtil bu = new BrowseUtil(request, bi); //建立BrowseUtil %>
然後我們就可以以這個bu物件來取得連結了。
取得換頁連結
<% String next = bu.getNextLink(); //下一頁 String last = bu.getLastLink(); //最後一頁 String prev = bu.getPrevLink(); //前一頁 String first = bu.getFirstLink(); //第一頁 %>
取得頁碼
以下語法會取得每一頁頁碼與連結,但是會排除自己的頁碼:
<%= bu.getPagesList() %>
結果如下:
<<first < previous 1 2 3 4 5 6 next > last >>
以下語法會取得該頁前後2頁之內的頁碼:
<%= bu.getPagesLink(2) %>
結果如下:
<<first < previous ... 2 3 4 5 6 ... next > last >>
其他BrowseInfo其實還有小功能,如果有需要的話就請自行看看程式碼囉。寫小功能還是非常讓人愉快的,大家加油!