2010-11-25 16 views
0

我的Struts2應用程序需要將分頁功能應用於某些記錄,但我需要自定義的是「Last 1 - 2 - 3 Next」外觀,並且還能夠使用組合框來選擇許多記錄應該是可見的(10 - 20 - 30 - 40 - 50)。Struts2分頁

我試過兩種方法來實現這個目標: 1)使用顯示標籤庫,但是我無法自定義外觀,因爲是由庫自動生成的,而且我沒有如何實現組合框可以選擇多少記錄應該是可見的 2)創建我自己的代碼來完成此功能,但工作時間太長,並且由於過期而沒有足夠的時間。 我的問題是:存在一些用於實現此功能的Struts2庫?或者,是否可以自定義頁面滾動條和記錄組合框的顯示標籤庫?

回答

0

我可以給從Struts2的代碼庫的洞察力存在由你描述的在自身的struts2沒有提供的功能..

關於我還沒有使用過很多,但顯示的標籤,因爲它們是oprn源的一部分我相信我們可以定製一個關於顯示標籤的定製問題,在顯示標籤問問題你會得到更好的答案在快速的步驟

+0

? – user962206 2013-01-23 06:00:15

0

我寫了一個自定義的tld只是爲了下面的目的,然後就使用它像這樣:

用法:

paginate.tag 1}「>

<c:set var="showingPage" 
    value="${param.pageNumber == null ? 1 : param.pageNumber}" /> 

<c:url value="${postUrl}" var="previousUrl"> 
    <c:param name="pageNumber" value="${showingPage - 1}" /> 
    <c:param name="perPage" value="${perPage}" /> 
</c:url> 

<c:url value="${postUrl}" var="nextUrl"> 
    <c:param name="pageNumber" value="${showingPage +1}" /> 
    <c:param name="perPage" value="${perPage}" /> 
</c:url> 

<div class="pagination" /> 

<c:if test="${showingPage > 1}"> 
    <a href="${previousUrl}"> &lt;&lt; Previous</a> 
</c:if> 

<fmt:formatNumber var="endCounter" pattern="0"> 
    <%= totalCount % perPage > 0 ? Math.ceil(totalCount/perPage) + 1 : totalCount/perPage %> 
</fmt:formatNumber> 

<c:forEach begin="1" end="${endCounter}" var="index"> 
    <c:url value="${postUrl}" var="url"> 
     <c:param name="pageNumber" value="${index}" /> 
     <c:param name="perPage" value="${perPage}" /> 
    </c:url> 

    <a href="${url}" class="${index == showingPage ? 'selected' : ''}">${index}</a> 
</c:forEach> 

<c:if test="${endCounter != showingPage}"> 
    <a href="${nextUrl}"> Next &gt;&gt;</a> 
</c:if> 


</div> 
</c:if> 
0

嗨,你可以在這裏嘗試Struts2的jQuery的電網是如何與Struts2的實現分頁代碼

<%@ page contentType="text/html; charset=UTF-8"%> 
<%@ taglib prefix="s" uri="/struts-tags"%> 
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%> 
<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags"%> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 


<sj:div id="resultsDiv"> 
    <body> 
     <div id="mainframe"> 
      <s:form> 
       <div id="sucessMsg"> 
        <s:property value="msg" /> 
       </div> 
       <s:url id="editurl" action="editUser" /> 
       <s:url id="deleteurl" action="deleteUser" /> 

       <script type="text/javascript"> 

function editLinkFormatter(cellval, options, rowObject, icon, link_class, link_action) { 
    //alert(rowObject.username); 

    return "<a href='#' onClick='javascript:openEditDialog(&#34;"+cellval+"&#34;,&#34;"+rowObject.username+"&#34;)'><font class='hyperlink'><u>" + rowObject.username + "</u></font></a>"; 
} 
function deleteLinkFormatter(cellval, options, rowObject, icon, link_class, link_action) { 

    return "<a href='deleteUser?userid="+cellval+"' onClick='javascript: return delete_user()'><font class='hyperlink'><u>Delete</u></font></a>"; 
    //return "<a href=deleteUser?userid="+cellval+">Delete</a>"; 
} 
colModal: [ 
      {name: 'userid', formatter: function (cellvalue, options, rowObject) { 
        return editLinkFormatter(cellvalue, options, rowObject, 
         'ui-icon-pencil', 'edit-link-class', 'Edit'); 
       }}, 
      {name: 'userid', formatter: function (cellvalue, options, rowObject) { 
        return deleteLinkFormatter(cellvalue, options, rowObject, icon, link_class, link_action); 
       }} 

     ]; 

     function openEditDialog(userid,username) { 


       $("#resultsDiv").load("<s:property value="editurl"/>?userid="+userid+"&username="+username); 

     } 
     function delete_user() { 

      var agree=confirm("Are you sure you want to Delete?"); 
      if (agree){ 
       return true; 
      } 
      else{ 
       return false; 
      } 

       // $("#edit_Users").dialog('open'); 
     } 

     function unlockerFormatter(cellval, options, rowObject, icon, link_class, link_action) { 

      if(rowObject.loginStatus=='Locked'){ 

      return "<a href='unlockuser?userid=" + rowObject.userid + "')'><font class='hyperlink'><u>Locked</u></font></a>"; 
      } 
      else{ 
       return "UnLocked"; 
      } 
      /* return "<a href='deleteUser?userid="+cellval+"' onClick='javascript: return deleteUser("+cellval+")'><u>Delete</u></a>"; */ 
      //return "<a href=deleteUser?userid="+cellval+">Delete</a>"; 
     } 
</script> 
       <sj:dialog id="edit_Users" title="Edit User" autoOpen="false" 
        modal="true" width="800" /> 
       <sj:div id="draggable" draggable="true"> 
        <s:url id="remoteurl" action="viewUserstemp" /> 


        <sjg:grid id="gridtable" caption="Users" dataType="json" 
         href="%{remoteurl}" pager="true" gridModel="gridModel" 
         rowList="10,15,20,50,100" rowNum="10" rownumbers="true" viewrecords="true" 
         width="800" navigator="true" navigatorView="false" navigatorDelete="false" navigatorAdd="false" navigatorEdit="false" navigatorSearch="false"> 
         <sjg:gridColumn name="userid" index="userid" title="User Id" 
          sortable="false" /> 
         <sjg:gridColumn name="userid" index="username" title="User Name" 
          sortable="true" formatter="editLinkFormatter" /> 
         <sjg:gridColumn name="emailid" index="emailid" title="Email Id" 
          sortable="true" /> 
         <sjg:gridColumn name="userCreatedDate" index="userCreatedDate" 
          title="Created Date" sortable="true" /> 
         <sjg:gridColumn name="userModifiedDate" index="userModifiedDate" 
          title="Modified Date" sortable="true" /> 
         <sjg:gridColumn name="accstatus" index="accstatus" 
          title="Account Status" sortable="true" /> 
         <sjg:gridColumn name="userid" index="username" title="Delete User" 
          sortable="true" formatter="deleteLinkFormatter" /> 
         <sjg:gridColumn name="loginStatus" index="loginStatus" title="Unlock User" 
          sortable="true" formatter="unlockerFormatter" /> 
        </sjg:grid> 

        <br></br> 
        <s:submit action="loadUserValues" cssClass="ui-button ui-widget ui-state-default ui-corner-all ui-state-hover" name="button" 
         id="button" value="New User" /> 
        <br /> 


       </sj:div> 

      </s:form> 
      <%-- 
        <td height="25" align="left" valign="middle"> 
         <s:url id="url" action="unlockuser"> 
           <s:param name="userid"> 
            <s:property value="userid" /> 
           </s:param> 
          </s:url> 

           <s:set name="type" value="%{loginStatus}" /> 
         <s:if test="%{#type=='Locked'}"> 
          <s:a href="%{url}" title="Click here to Unlock" ><s:property value="loginStatus"/></s:a> 
        </s:if> 
        <s:else>    
         Unlocked 
        </s:else>  --%> 

          </td> 
     </div> 
    </body> 
</sj:div> 
</html>