开发者

Struts2 pagination

My Struts2 application needs the pagination functionality applied to some records, but what I need to customize is the "Last 1 - 2 - 3 Next" appearance and also have the ability to use a combo box for the selection of how many records should be visible(10 - 20 - 30 - 40 -50).

I have tried two way to accomplish this goal: 1) use display tag library, but I'm not able to customize the appearance, because is auto-generated by the library, and I don't how implement the combo box for select how many records should be visible 2) create my own code for accomplish this functio开发者_开发知识库nality but is a job too long and not enough time due to the expiry. My question is: exists some Struts2 library for realize this functionality? Or, is possible to customize the display tag library for the page scroll bar and the records combo box?


I can give insight from struts2 code base there is no functionality as described by you provided by struts2 in itself..

Regarding the Display tag i have not used them much but since they are the part of oprn source i am sure we can customize that one more thing regarding the customization of display tag ask question under display tag you will get better answer at at quick pace


I wrote a custom tld just for the purpose as below and then just use it like this:

Usage:

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>


hi you can try struts2 jquery grid here is the code

<%@ 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>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜