⑴ jsp+struts2 上一頁1 2 3 4 5 下一頁 分頁代碼
action類中的分頁方法如下:
///分頁顯示
public String ShowUser(){
int pageNow = 1;//希望顯示第幾頁 默認顯示第一頁
int pageSize = 3;//每頁顯示多少條記錄
int pageCount;//一共有多少頁 ——通過計算得到
int rowCount;//一共有多少條記錄 ——從資料庫查詢
int start = (pageNow-1)*pageSize;//第n頁的起始查詢數據
// 獲取總記錄數 rowCount
UserDao userDao = new UserDao();
String count=userDao.getList("user", "count(id)", null, null, null).get(0).get("count(id)");
rowCount = Integer.parseInt(count); //將count轉成int類型
//計算 pageCount 一共 分 多少頁
pageCount =(rowCount+pageSize-1)/pageSize;
//接受用戶希望顯示的頁數(pageNow)
HttpServletRequest request=ServletActionContext.getRequest();
String s_pageNow=request.getParameter("pageNow");
if(s_pageNow!=null){
pageNow =Integer.parseInt(s_pageNow);
if(pageNow>pageCount){
pageNow=pageCount;
}
if(pageNow<1){
pageNow=1;
}
}
System.out.println("showuser中獲取到的頁數值為"+pageNow);
ServletActionContext.getRequest().setAttribute("pageNow", pageNow);//生成緩存
ServletActionContext.getRequest().setAttribute("pagecount", pageCount);//生成緩存
start = (pageNow-1)*pageSize;
List<Map<String, String>> list= userService.query(start, pageSize);
ServletActionContext.getRequest().setAttribute("list", list);
return "ShowUserSuccess";
}
調用service中的方法如下:
// 分頁查詢
public List<Map<String, String>> query( int star, int pagsize){//select * from user where username="loginname"
//獲取用戶name 通過name查詢信息
//String userName=(String) ServletActionContext.getRequest().getAttribute("lname");
String start = Integer.toString(star);
String pagesize = Integer.toString(pagsize);
List<Map<String, String>> list = userDao.getList("user", "id,username,password,userage,url", null,start,pagesize);
if(list.size()>0){
System.out.println("進入query中");
return list;
}
return null;
}
界面中控制分頁的語句如下:
<a href="userAction!ShowUser"?pageNow=1>首頁</a>
<a href="userAction!ShowUser?pageNow=${pageNow-1 }">上一頁</a>
<!--var定義 -->
<c:forEach var="i" step="1" begin="1" end="${pagecount }">
<c:choose>
<c:when test="${pageNow eq i }">
[${i }]
</c:when>
<c:otherwise>
<a href="userAction!ShowUser?pageNow=${i }">[${i }]</a>
</c:otherwise>
</c:choose>
</c:forEach>
<a href="userAction!ShowUser?pageNow=${pageNow+1 }" >下一頁</a>
Struts中的配置如下:
<package name="user" extends="struts-default">
<action name="userAction" class="action.UserAction" >
<!-- 登陸返回值 -->
<result name="loginSuccess" type="redirect">/userAction!ShowUser</result>
<result name="loginError">/login.jsp</result>
<!-- 分頁方法返回值 -->
<result name="ShowUserSuccess">/main.jsp</result>
</action>
</package>
⑵ 如何在jsp頁面中使用struts2標簽
要在jsp中使用struts2.0的標簽,首先要在頁面使用taglib指令,將struts2的tld文件導入
<%@taglibprefix="s"uri="/struts-tags"%>
struts2的標簽主要分為兩大類:
UI標簽 這個幾乎不怎麼用就不介紹了
非UI標簽
if,elseif和else
<s:iftest="link_type==1">//只有當test的的值為true時,才會執行if語句塊裡面的內容
文字
</s:if>
<s:elseiftest="link_type==2">
圖片
</s:elseif>
<s:else>
-----
</s:else>
迭代標簽的使用
iterator描述:
用於遍歷集合(java.util.Collection)或枚舉值(java.util.Iterator)。
<ol>
<s:iteratorvalue="#request.names"status="stuts">
<s:iftest="#stuts.odd==true">//判斷取出數據的奇偶性
<li>White<s:property/></li>
</s:if>
<s:else>
<listyle="background-color:gray"><s:property/></li>
</s:else>
</s:iterator>
</ol>
上述代碼的顯示效果就是相鄰的兩行顏色是區分開來的
URL地址標簽,<s:url>用於生成一個URL地址,可以通過URL標簽指定的<s:param>
子元素向URL地址發送請求參數
<s:urlaction="">
<s:paramname=""value=""></s:param>
</s:url>
超鏈接<ahref>一般和<s:url>標簽一起使用,用於帶多個參數。
<ahref="
<s:urlaction="">
<s:paramname=""value=""></s:param>
<s:paramname=""value=""></s:param>
<s:paramname=""value=""></s:param>
</s:url>">
鏈接到...
</a>
set標簽,用於將某個值放入指定的范圍內。例如application,session等。
<s:setname="user"value="userName"scope=」request」/>
Struts2頁面開發中常用標簽使用規范:
2.1.通過<inputname="userName"type="text"class=""size="15">
往action中傳值,action中要有相應的屬性,並提供SET/GET方法。
(在數量少時可以使用request.getParameter(「userName」);)
2.2.在頁面顯示action傳來的數據,使用property標簽。需要顯示的數據從action中獲得。
2.3.往action中的實體對象內傳值,使用textfield標簽。
2.4.在頁面中判斷指定值使用<s:if>標簽。判斷數據從action中獲得。
2.5.在頁面中需要循環列表顯示的數據使用<s:iterator>標簽,列表數據從action中獲得。
2.6.URL地址和超鏈接可以使用<ahref>和<s:url>,在傳多值時建議<ahref>和<s:url>一起使用