<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>asdf</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <!-- 分页搜索功能 start --> <form id="signupForm" method="get" action="mytest.action"> <input id="user_name" name="user_name" value="${user_name}"/> <input type="submit" value="提交"/> </form> <table> <tr> <th>姓名</th> <th>密码</th> </tr> <s:iterator id="list" value="#request.pagelist"> <tr> <td><s:property value="#list.name"/></td> </tr> </s:iterator> </table> <!--首页 --> <c:choose> <c:when test="${currentpage == 1}"> 首页 </c:when> <c:otherwise> <a href="mytest.action?pages=1&user_name=${keyencode}" style="color: blue;">首页</a><!--user_name=${keyencode}翻页时传值的关键之处--> </c:otherwise> </c:choose> <!-- 上一页 --> <c:choose> <c:when test="${up == 0}"> 上一页 </c:when> <c:otherwise> <a href="mytest.action?pages=${up}&user_name=${keyencode}" style="color: blue;">上一页</a> </c:otherwise> </c:choose> <!-- 连续分页 --> <c:forEach items="${listArrayList}" var="listArrayList"> <c:choose> <c:when test="${listArrayList == currentpage}"> [${listArrayList}] </c:when> <c:otherwise> <a href="mytest.action?pages=${listArrayList}&user_name=${keyencode}" style="color: blue;">${listArrayList}</a> </c:otherwise> </c:choose> </c:forEach> <!-- 下一页 --> <c:choose> <c:when test="${next == 0}"> 下一页 </c:when> <c:otherwise> <a href="mytest.action?pages=${next}&user_name=${keyencode}" style="color: blue;">下一页</a> </c:otherwise> </c:choose> <!-- 尾页 --> <c:choose> <c:when test="${currentpage == totalpage}"> 尾页 </c:when> <c:otherwise> <a href="mytest.action?pages=${totalpage}&user_name=${keyencode}" style="color: blue;">尾页</a> </c:otherwise> </c:choose> <!-- 分页搜索功能 end --> </body> </html>
package test.action; import java.net.URLEncoder; import java.util.List; import test.dao.UserDAO; import test.util.Pages.Pages; import test.util.s2services.Services; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class MytestAction extends ActionSupport{ private String user_name;//获取搜索关键字 private int user_age; private String user_sex; private List pagelist; private String keyencode;//页面获取此16进制编码 public String getKeyencode() { return keyencode; } public void setKeyencode(String keyencode) { this.keyencode = keyencode; } public List getPagelist() { return pagelist; } public void setPagelist(List pagelist) { this.pagelist = pagelist; } public int getUser_age() { return user_age; } public void setUser_age(int user_age) { this.user_age = user_age; } public String getUser_name() { return user_name; } public void setUser_name(String user_name) { this.user_name = user_name; } public String getUser_sex() { return user_sex; } public void setUser_sex(String user_sex) { this.user_sex = user_sex; } @Override public String execute() throws Exception { if(getUser_name()!=null)//转换的关键地方 { setUser_name(new String(getUser_name().getBytes("iso8859-1"),"utf-8"));//将页面以get形式传过来的乱码关键字转换成中文,并且页面传过来的16进制码也可以通过此方法转换成中文 setKeyencode(URLEncoder.encode(getUser_name(),"utf-8"));//将搜索的关键字变成utf-8形式的16进制编码传给页面 } int page=0; if(Services.request().getParameter("pages")==null)page=1; else page=Integer.parseInt(Services.request().getParameter("pages")); UserDAO userDAO=new UserDAO(); int count=userDAO.objectFindByValue("%"+getUser_name()+"%", "from User where name like ?").size(); List list=userDAO.productIndexFindPage(2, page, "User", "name like '%"+getUser_name()+"%'", "id"); List pagelist=Pages.pages(2, 20, count, list); setPagelist(pagelist); return SUCCESS; } }
此文章主要用于个人知识储备使用,附带源码,如果觉得好的可以收藏,如果觉得不够完善可以自己修改,或提出意见,小弟虚心接受