<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>



                                                                                                           --    學海無涯
            

    主站蜘蛛池模板: 免费一级e一片在线播放| 亚洲熟妇av一区二区三区下载| 中文字幕亚洲综合小综合在线| 亚洲aⅴ天堂av天堂无码麻豆| a级毛片高清免费视频| 亚洲伦乱亚洲h视频| 中文字幕亚洲男人的天堂网络| 国产2021精品视频免费播放| 亚洲乱码中文字幕小综合| 久久久久久av无码免费看大片| 亚洲一区日韩高清中文字幕亚洲| 亚洲av一本岛在线播放| a毛片全部播放免费视频完整18| 国产亚洲大尺度无码无码专线 | 亚洲人成在线精品| 日韩吃奶摸下AA片免费观看 | 特级一级毛片免费看| 日韩免费a级在线观看| 四虎精品成人免费视频| 国产精品无码免费播放| 亚洲成在人线在线播放无码| 免费人妻av无码专区| 国产免费伦精品一区二区三区| 亚洲国产精品久久久久| 无码一区二区三区AV免费| 亚洲国产区男人本色| 亚洲日韩在线中文字幕第一页| 在线看片免费人成视频福利| 国内精品99亚洲免费高清| 亚洲成人免费在线| 亚洲精品美女网站| 亚洲免费日韩无码系列| 91大神免费观看| 亚洲天堂在线播放| 18禁无遮挡无码网站免费| 一级毛片a免费播放王色电影| 无码久久精品国产亚洲Av影片| 中文字幕无码一区二区免费| 亚洲资源最新版在线观看| 亚洲一区二区精品视频| 亚洲一区在线免费观看|