我在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.