<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Cyh的博客

    Email:kissyan4916@163.com
    posts - 26, comments - 19, trackbacks - 0, articles - 220

    struts2+Spring分頁

    Posted on 2009-06-10 12:26 啥都寫點 閱讀(872) 評論(0)  編輯  收藏 所屬分類: J2EE
         今天寫了一個分頁程序,是使用struts2+Spring完成的,現提供完整的源代碼。如果看完后,還有不明白之處大家可以給我發郵件:chenyanhubusiness@gmail.com

         在這里對struts2 和 Spring的基本配置我就不多說了,在這個小程序中數據源我是使用Spring提供的c3po的數據源,并且查詢數據庫使用的是Jdbc模板,現提供
     數據源和Jdbc模板以及相關配置。
         <!--引入屬性配置文件-->
      <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="/WEB-INF/jdbc.properties"/>
      </bean>  


                         
    <!-- C3P0 -->
      
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
          
    <property name="driverClass" value="${jdbc.driverClassName}"></property>
          
    <property name="jdbcUrl"    value="${jdbc.url}"></property>
          
    <property name="user">  
            
    <value>${jdbc.username}</value>
          
    </property>
          
    <property name="password">
            
    <value>${jdbc.password}</value>
          
    </property> 
           
    <property name="minPoolSize" value="5"></property>
           
    <property name="maxPoolSize" value="20"></property>
           
    <property name="acquireIncrement" value="5"></property>
         
    </bean>
     
      
    <!-- JDBC模板 -->
      
      
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
       
    <property name="dataSource" >
        
    <ref bean="dataSource" />
       
    </property>
       
    <property name="lazyInit" value="true"></property>
      
    </bean>

     <!--   Dao  -->
     <bean id="dao" abstract="true">
        <property name="jdbcTemplate" ref="jdbcTemplate"/>
     </bean>

     <bean id="userDao" parent="dao" class="ryan.chapter8.UserDao"/>
      
     
     <!-- 注入Action -->
     <bean id="user" scope="prototype" class="ryan.chapter8.UserAction">
        <property name="uds" ref="userDao"></property>
     </bean>


       我將相關的jdbc配置寫在了jdbc.properties里面,大家可以根據自己機器的情況自行修改:
    jdbc.driverClassName=com.mysql.jdbc.Driver
    jdbc.url
    =jdbc:mysql://localhost:3306/spring
    jdbc.username=root
    jdbc.password
    =123456

    來看看index.jsp頁面
    <s:form action="pagination_user" method="post">
            
    <s:submit value="查看列表"/>
         
    </s:form>

    這里是struts.xml配置:
    <struts>
     
    <!--  Struts2  in spring conformity   -->

     
    <constant name="struts.objectFactory" value="spring" />

     
    <package  name="Action" extends="struts-default">
        
    <action name="*_user" method="{1}"  class="user">
          
    <result name="success">/index.jsp</result>
          
    <result name="page">/pagination.jsp</result>
        
    </action>
      
    </package>

    </struts>

    接下來看看UserDaoService 和 UserDao。
    public interface UserDaoService {
        
        
    public void insertUser() ;
         
        
    public List<User> pageUser(int pageNow,int pageSize);
        
        
    public int pageCount(int pageSize);
    }

    import java.util.ArrayList;
    import java.util.List;
    import org.springframework.jdbc.core.support.JdbcDaoSupport;


    public class UserDao extends JdbcDaoSupport implements UserDaoService{
       
         List
    <User> list = new ArrayList<User>();
        
     
         
    int pageCount = 0;
         
    public void insertUser() {
            String sql 
    = "insert into user(username,password)values('ryan','chen')";
            getJdbcTemplate().execute(sql);
         }
         
         
         
    public List<User> pageUser(int pageNow,int pageSize) {
            
             String limitF 
    = String.valueOf((pageNow-1)*pageSize);
            
             System.out.println(
    "limitF = " +limitF);
             
             String limitA 
    = String.valueOf(pageSize);
             
             System.out.println(
    "limitA = " +limitA);
             
             String sql2 
    = "select * from user limit"+" "+limitF+","+limitA ;
             
             System.out.println(
    "sql2 = "+sql2);
            
             list 
    = getJdbcTemplate().queryForList(sql2);
             
             
    return list;
         }
         
    /**
          * 分頁
          
    */
         
    public int pageCount(int pageSize) {
             String sql 
    = "select count(*) from user";
               
             
    int rowCount  = getJdbcTemplate().queryForInt(sql);
             
             
    if(rowCount%pageSize==0){
                 pageCount 
    = rowCount/pageSize; 
             }
    else{
                 pageCount 
    = rowCount/pageSize+1
             }
            
    return pageCount;
         }
         
    }

    POJO:
    package ryan.chapter8;

    public class User {

          
    private int id ;
          
          
    private String username;
          
          
    private String password;

         省略 getter和setter
    ......
          
    }

    下面是UserAction:

    package ryan.chapter8;

    import java.util.ArrayList;
    import java.util.List;

    import org.springframework.dao.DataAccessException;

    import com.opensymphony.xwork2.ActionSupport;

    public class UserAction extends ActionSupport{
        
        UserDaoService uds;
        
        
    int pageCount = 0;
        
        
    int pageSize = 5;
        
        
    int listSize;
        
        List
    <User> list = new ArrayList<User>();
        
        
    int pageNow = 1//希望顯示第幾頁
        
        
    public List<User> getList() {
            
    return list;
        }

        
    public void setList(List<User> list) {
            
    this.list = list;
        }

        
    public int getPageNow() {
            
    return pageNow;
        }

        
    public void setPageNow(int pageNow) {
            
    this.pageNow = pageNow;
        }

        
    public UserDaoService getUds() {
            
    return uds;
        }

        
    public void setUds(UserDaoService uds) {
            
    this.uds = uds;
        }
        
        
        
    public  String create(){
             
    try {
                   uds.insertUser();
                   }
    catch (DataAccessException dae) {
                    
    // TODO: handle exception
                       dae.printStackTrace();
                       System.out.println(
    "數據訪問異常!!");
                } 
    catch (Exception e) {
                    
    // TODO: handle exception
                       e.printStackTrace();
                       System.out.println(
    "出現異常了!");
                }
                    
    return SUCCESS;
                }
            
        
      
    //分頁
        public String pagination() {
            
            pageCount 
    = uds.pageCount(pageSize); 
            
            list 
    = uds.pageUser(pageNow,pageSize);

            
    if(list.size()==0){
                
                listSize 
    = 1;

                addActionError(
    "數據庫中沒有值");
            }
            
            
    return "page";
        }
        
        
        @Override
        
    public String execute() throws Exception {
      
          
    return null;
        }

        
    public int getPageCount() {
            
    return pageCount;
        }

        
    public void setPageCount(int pageCount) {
            
    this.pageCount = pageCount;
        }

        
    public int getPageSize() {
            
    return pageSize;
        }

        
    public void setPageSize(int pageSize) {
            
    this.pageSize = pageSize;
        }

        
    public int getListSize() {
            
    return listSize;
        }

        
    public void setListSize(int listSize) {
            
    this.listSize = listSize;
        }
      }

    接下來是分頁的頁面 pagination.jsp
    <html>
      
    <head>
        
    <base href="<%=basePath%>">
        
        
    <title>My JSP 'pagination.jsp' starting page</title>
        
        
    <meta http-equiv="pragma" content="no-cache">
        
    <meta http-equiv="cache-control" content="no-cache">
        
    <meta http-equiv="expires" content="0">    
        
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        
    <meta http-equiv="description" content="This is my page">
        
    <!--
        
    <link rel="stylesheet" type="text/css" href="styles.css">
        
    -->

      
    </head>
      
      
    <body>
      
        
    <s:actionerror/>
        
      
    <table>
         
    <tr> 
           
    <td>序號</td>
           
    <td>姓名</td>
           
    <td>密碼</td>
         
    </tr>
         
    <s:iterator value="list" id="li">
          
    <tr>
              
    <td><s:property value="#li.id"/></td>
              
    <td><s:property value="#li.username"/></td> 
              
    <td><s:property value="#li.password"/></td>
          
    </tr>  
         
    </s:iterator>
        
      
    </table>   
        
        
    <!-- =================================分頁================================ -->
        
       
    <s:if test="listSize!=1"> 
        
    <s:url action="pagination_user" id="homePage">
          
    <s:param name="pageNow">1</s:param>
        
    </s:url>
        
    <s:a href="%{homePage}">首頁</s:a>

        
    <!-- 這是上一頁的鏈接 --> 
        
    <s:url action="pagination_user" id="previousPage" >
           
    <s:param name="pageNow">${pageNow-1}</s:param>
        
    </s:url>
       
    <s:if test="pageNow!=1"> 
        
    <s:a href="%{previousPage}">上一頁</s:a> 
       
    </s:if> 

        
         
    <s:bean name="org.apache.struts2.util.Counter" id="counter">  
         
    <s:param name="first">${pageNow}</s:param>  
         
    <s:param name="last">${pageNow+2}</s:param>
         
    <s:iterator>  
           
    <s:if test=" (pageNow!=pageCount)&&(pageNow = pageNow+1)">
             
    <s:url action="pagination_user" id="currentPage">
                
    <s:param name="pageNow">${pageNow}</s:param>
             
    </s:url>
             
    <s:a href="%{currentPage}">${pageNow}</s:a> 
           
    </s:if>
         
    </s:iterator>  
         
    </s:bean>  

      
        
    <!-- 下一頁 --> 
         
    <s:url action="pagination_user" id="nextPage">
            
    <s:param name="pageNow">${pageNow+1}</s:param>
         
    </s:url>     
         
    <s:if test="pageNow!=pageCount">
            
    <s:a href="%{nextPage}">下一頁</s:a>
         
    </s:if>
        
        
    <!-- 尾頁 -->
        
    <s:url action="pagination_user" id="endPage">
          
    <s:param name="pageNow">${pageCount}</s:param>
        
    </s:url>
        
    <s:a href="%{endPage}">尾頁</s:a>
        
        
    </s:if>
      
    </body>
    </html>



                                                                                                           --    學海無涯
            

    主站蜘蛛池模板: 毛片免费视频播放| yy6080久久亚洲精品| 国产精品无码一二区免费| 亚洲av综合av一区| 我的小后妈韩剧在线看免费高清版| 91频在线观看免费大全| 亚洲午夜福利在线观看| 又长又大又粗又硬3p免费视频| 久久国内免费视频| 一个人看的hd免费视频| 又爽又黄无遮挡高清免费视频 | 永久黄网站色视频免费| 666精品国产精品亚洲| a级毛片毛片免费观看永久| 亚洲阿v天堂在线2017免费| 亚洲AV第一成肉网| 亚洲国产精品无码专区影院| 一级毛片免费播放试看60分钟| 日本一道高清不卡免费| 日日摸日日碰夜夜爽亚洲| 成人毛片视频免费网站观看| 亚洲伦理中文字幕| 亚洲乱码国产一区三区| a级毛片在线免费看| 亚洲AV永久青草无码精品| 精品乱子伦一区二区三区高清免费播放| 亚洲黄色在线视频| 久久久久亚洲AV无码专区桃色| 免费一级毛片在线播放视频免费观看永久| 亚洲va无码va在线va天堂| 99精品热线在线观看免费视频| 亚洲成a人片在线网站| 一个人在线观看视频免费| 亚洲精品动漫免费二区| 免费国产高清视频| 欧美在线看片A免费观看| 亚洲免费网站观看视频| 亚洲欧洲国产成人综合在线观看| GOGOGO免费观看国语| 亚洲第一福利网站| 国产性爱在线观看亚洲黄色一级片|