国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
ECSide內(nèi)存分頁

ECSide內(nèi)存分頁

關(guān)鍵字: ecside內(nèi)存分頁

將您將要展現(xiàn)的列表的數(shù)據(jù)集合(Collection),放入request/pagecontext/session內(nèi)(使用setAttribute方法.這個(gè)工作可以在action/servlet里完成,也可以在jsp頁面內(nèi)完成),然后頁面跳轉(zhuǎn)到使用ECSide標(biāo)簽的jsp頁面,此時(shí)ECSide就可以幫助您展現(xiàn)出所需要的列表.

一個(gè)簡單的流程通常是這樣的.

1 客戶端請求action/servlet(如 http://10.195.129.101/test/userlist.do)
2 action接受到請求后,調(diào)用相應(yīng)的BO/dao,執(zhí)行取列表數(shù)據(jù)的方法.
3 取得數(shù)據(jù)后(通常是一個(gè)vo/map的list),將數(shù)據(jù)放入request內(nèi)(使用requset.setAttribute(key,value)方法.)
4 將請求forward到使用ECSide標(biāo)簽的jsp頁面.
5 ECSide將展現(xiàn)出列表.

  知道了原理,那么讓我們一起來完成一個(gè)快速而簡單的例子吧.現(xiàn)在有一張用戶信息表,如下

表名稱: USER_INFO(用戶信息表)
字段:
    USERID   (用戶編號(hào))
    USERNAME (用戶名)
    PASSWD   (密碼)
    USERROLE (角色) 0 被鎖定  1 普通  2 高級(jí) 3 管理員 4超級(jí)管理員
    REGDATE  (注冊日期)
    EMAIL    (EMAIL)
    GENDER   (性別) 0 未知 1 男 2女
    MEMO     (備注)

h2db的建表腳本如下:

create table USER_INFO (
    USERID int not null identity,
    USERNAME varchar(80) not null,
    PASSWD varchar(255) not null,
    USERROLE varchar(10) default 1,
    REGDATE varchar(20) ,
    EMAIL varchar(128) ,
    GENDER varchar(2) default 0,
    MEMO varchar(1024)  ,
    constraint PK_USER_INFO primary key (USERID)
);

對應(yīng)VO:

public class UserInfo {
 private Integer userId;
 private String userName;
 private String passwd;
 private String userRole;
 private String regDate;
 private String email;
 private String gender;
 private String memo;
 
 /* 略去getter setter方法 */

}
  對應(yīng)DAO如下(假設(shè)DAO里只有一個(gè)方法,取得全部的用戶信息,返回的是VO的List):

public class UserDAO extends BaseDAO  {

 public List getAllUsers(){
  StringBuffer bufSql = new StringBuffer("SELECT * FROM USER_INFO WHERE 1=1");
  
  Connection conn=null;
  PreparedStatement pstmt = null;
  ResultSet rest = null;

  List allUsers=null;

  try {
   conn = getConnection();
   pstmt = ConnectionUtils.prepareStatement(conn,bufSql.toString());
   rest = pstmt.executeQuery();
   allUsers=new ArrayList();
   UserVO userVO=null;
   while (rest.next()) {
    userVO=new UserVO();
    /* 略去將ResultSet結(jié)果放入VO的過程 */
    allUsers.add(userVO);
   }
  } catch (Exception e) {
   allUsers=null;
  }finally{
   close(rest, pstmt, conn);
  }  
  return allUsers;
 }

}


該簡單例子假設(shè)該表數(shù)據(jù)量不大:500以內(nèi),采用ECSide的java內(nèi)存分頁技術(shù)

由于此例子實(shí)在簡單,所以略去BO層.

action(DispatchActionSupport)代碼如下:


public class MyTestAction extends DispatchAction {

 // java內(nèi)存分頁
 public ActionForward getAllUsers(ActionMapping mapping, ActionForm form,
 HttpServletRequest request, HttpServletResponse response)
 throws Exception {

  // 取得DAO,這里是從spring上下文中取得指定DAO,略去spring相關(guān)代碼
  UserDAO userDAO=(UserDAO)getBean("userDAO");

  List allUsers = userDAO.getAllUsers();

//將結(jié)果集合放入request內(nèi),記住鍵名"allUsers".
  request.setAttribute("allUsers", allUsers);

 
  //forward到列表展現(xiàn)頁面
  return mapping.findForward("userlistPage");

 }
}

 

訪問該action的URL為
http://localhost:8080/ecsdemo/simpledemo.do?actionMethod=getAllUsers

jsp頁面:
引入標(biāo)簽聲明

<%@ taglib uri="http://www.ecside.org" prefix="ec" %>


通常jsp頁面內(nèi)取得應(yīng)用上下文是必須的.

<%
String webapp=request.getContextPath();
%>


引入ECSide必要的css js

<link rel="stylesheet" type="text/css" href="<%=webapp%>/common/css/ECSide_style.css" />
<script type="text/javascript" src="<%=webapp%>/common/js/prototype_mini.js" ></script> 
<script type="text/javascript" src="<%=webapp%>/common/js/ECSide.js" ></script>


ECSide的標(biāo)簽,也是展現(xiàn)列表最關(guān)鍵的環(huán)節(jié):


<ec:table items="allUsers" var="user"
retrieveRowsCallback="process"
action="${pageContext.request.contextPath}/simpledemo.do?actionMethod=getAllUsers"
title="用戶列表"

width="100%"
classic="true"
>
<ec:row>
 <ec:column width="50" property="_0" title="序號(hào)" value="${GLOBALROWCOUNT}" />
 <ec:column width="80" property="userRole" title="角色"   />
 <ec:column     property="userName" title="用戶名" />
 <ec:column width="100" property="passwd" title="密碼"  />
 <ec:column width="120" property="email" title="電子信箱" />
 <ec:column width="70" property="gender" title="性別"  />
</ec:row>
</ec:table> 


  <ec:table> ECSide的主標(biāo)簽,可以理解為 html里的table標(biāo)簽,items指明列表集合在request的屬性表里的鍵名, var指明迭代列表集合時(shí),單條記錄所用的變量名.此處類似jstl里的c:forEach標(biāo)簽.
retrieveRowsCallback="process"  指明采用ECSide的java內(nèi)存分頁技術(shù).action指明翻頁排序等操作時(shí),所要調(diào)用的action的url,在這里你可以繼續(xù)使用展現(xiàn)列表所使用的action
title="用戶列表"  列表的標(biāo)題
width="100%"  列表的寬度
classic="true"  使用傳統(tǒng)方式列表

<ec:row> 行標(biāo)簽,可以理解為類似html里的tr標(biāo)簽

<ec:column> 列標(biāo)簽,可以理解為類似html里的td標(biāo)簽

width列的寬度, 類似td的 width屬性

property 該列所要顯示的數(shù)據(jù)在VO中對應(yīng)的屬性字段的名字(如果每條數(shù)據(jù)是存放在VO里的話),或MAP里對應(yīng)的key的名字(如果每條數(shù)據(jù)是存放在MAP里的話)
title 表頭中該列所要顯示的名稱
value 該列所要顯示的內(nèi)容.當(dāng)你要顯示的內(nèi)容默認(rèn)不是VO/MAP里的值的時(shí)候,你才需要使用value屬性,為該列手動(dòng)的指定一個(gè)值.
${GLOBALROWCOUNT}為ECSide內(nèi)置的一個(gè)特殊變量,表示的數(shù)據(jù)所在的行號(hào),針對全部數(shù)據(jù)而言,${ROWCOUNT}是針對當(dāng)前頁面而言.

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
無需容器的對象關(guān)系映射
MyEclipse Spring Hibernate整合開發(fā) - liuxinglanyue - JavaEye技術(shù)網(wǎng)站
Object-relation mapping without the container
tkMapper的使用-超詳細(xì)
hibernate多表查詢檢索的幾種方法。二
JSP復(fù)習(xí)筆記——第10章連接數(shù)據(jù)庫之DAO設(shè)計(jì)模式-墮落天使-JavaEy...
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服