我在struts2应用程序中使用DisplayTag,并且我想在单击分页时命中查询。

例如:当用户单击下一页或任何页面时,将在操作类上触发查询。

文件:displayTag.jsp

<display:table name="list1" sort="list" size="20" pagesize="5" id="table1" export="true" requestURI="" partialList="true">
        <display:column property="no" group="1" sortable="true" headerClass="sortable"></display:column>
        <display:column property="nam" group="2" sortable="true" headerClass="sortable"></display:column>
        <display:column property="ct" group="3" sortable="true" headerClass="sortable" autolink="true"></display:column>
        <display:setProperty name="export.excel.filename" value="diplayTag.xls"></display:setProperty>
        <display:setProperty name="export.pdf.filename" value="diplayTag.pdf"></display:setProperty>
        <display:setProperty name="export.csv.filename" value="diplayTag.csv"></display:setProperty>
        <display:setProperty name="export.pdf" value="true"></display:setProperty>
</display:table>


我使用request.setAttribute("list1", li);,在其中将所有数据设置在list1(ArrayList)中,并传递给displayTag.jsp。

DisplayTag获取所有数据并以表格格式显示。但是我需要一次仅传递5个数据,然后单击下一页动作类发送其他5个数据,依此类推。

我指的是链接:Display tag pagination problem

但是我不明白,因为我使用的是MySql,而且也是DisaplyTag的新功能。

数据库:MySql

框架:struts2

最佳答案

经过研究和努力工作,我找到了答案。

文件:displayTag.jsp

<display:table name="list1" sort="external" size="20" pagesize="5" id="table1" export="true" requestURI="disTag" partialList="true">
     // code as above
</dispaly:table>


这里的requestURI="disTag"是动作名称。

文件:struts.xml

<action name="disTag" class="className">
    <result name="success">/displayTag.jsp</result>
    <result name="error">/error.jsp</result>
</action>


FILE:类文件

page = Integer.parseInt(request.getParameter((new ParamEncoder("table1").encodeParameterName(TableTagParameters.PARAMETER_PAGE))));
if(page != 0)
{
    start = (page - 1) * 5;   //5 is row or data per page.
}
getData(start, 5);    //getData is a method which store all data in ArrayList. Based on start index.

09-25 20:46