posts - 70,comments - 408,trackbacks - 0

              說道Struts自然是不能離開MVC模式,分頁(yè)顯示也是如此.我不知道我的算法是不是算好的,也希望看過的朋友能發(fā)表一下自己的看法,下面簡(jiǎn)單闡述一下主要的開發(fā)思路:

          1)建立適當(dāng)?shù)哪P徒M件,對(duì)應(yīng)你要查詢數(shù)據(jù)庫(kù)中的表,這部分由熟悉的JavaBean來(lái)充當(dāng).并在其中建立數(shù)據(jù)庫(kù)查詢方法,該方法需要一個(gè)java.sql.Conntection類型的參數(shù),并返回一個(gè)ArrayList,在本例中為Book.java,另外還有一個(gè)數(shù)據(jù)庫(kù)連接的Bean是SqlBean.java.

          2)建立分頁(yè)所需要的模型組件,也是用JavaBean,通過Book提供的ArrayList來(lái)構(gòu)造,這里用的是PageBean.java.

          3)建立控制器組件,這部分由Struts的Action來(lái)實(shí)現(xiàn),主要負(fù)責(zé)實(shí)例化Book,并利用返回的ArrayList對(duì)象,構(gòu)造PageBean,以及接收由視圖傳遞來(lái)的action參數(shù),從而在PageBean對(duì)象中調(diào)用不同的方法,該方法返回Book[]對(duì)象,最后將Book[]和PageBean放入到request中.本Action為PageListAction.java.

          4)建立視圖組件,這部分JSP來(lái)實(shí)現(xiàn),為了不出現(xiàn)JAVA代碼,使用Struts提供的標(biāo)簽庫(kù),主要負(fù)責(zé)從Request中取出剛剛放入的對(duì)象,通過反復(fù)調(diào)用Action以及action參數(shù),而實(shí)現(xiàn)分頁(yè)顯示,是pagetest.jsp.

          5)建立并配置struts-config.xml和web.xml文件.

          6)建立數(shù)據(jù)庫(kù).

          我對(duì)代碼進(jìn)行了實(shí)現(xiàn),調(diào)試通過.如果大家有更好的用Struts實(shí)現(xiàn)分頁(yè)顯示的算法可以給我留言,代碼如下:

          struts-config.xml文件如下,這里配置了一個(gè)接收haha的請(qǐng)求提交給PageListAction

           

          <?xml version="1.0" encoding="UTF-8"?>

          <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

          <struts-config>

           

             <action-mappings>

                 <action path="/haha"

                         type="page.PageListAction"

                         scope="request">

                       <forward name="success" path="/pagetest.jsp"/>

                 </action>

              </action-mappings>

             <message-resources parameter="ApplicationResources" />

          </struts-config>

          ……………………………………………………………………………….

          Web.xml文件如下,這里配置了Web的信息,基本都是由Eclipse完成的

           

          <?xml version="1.0" encoding="UTF-8"?>

          <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

             <servlet>

                <servlet-name>action</servlet-name>

                <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

                <init-param>

                   <param-name>application</param-name>

                   <param-value>ApplicationResources</param-value>

                </init-param>

                <init-param>

                   <param-name>config</param-name>

                   <param-value>/WEB-INF/struts-config.xml</param-value>

                </init-param>

                <init-param>

                   <param-name>debug</param-name>

                   <param-value>2</param-value>

                </init-param>

                <init-param>

                   <param-name>detail</param-name>

                   <param-value>2</param-value>

                </init-param>

                <load-on-startup>2</load-on-startup>

             </servlet>

             <servlet-mapping>

                <servlet-name>action</servlet-name>

                <url-pattern>*.do</url-pattern>

             </servlet-mapping>

             <welcome-file-list>

               <welcome-file>index.jsp</welcome-file>

               </welcome-file-list>

          </web-app>

          …………………………………………………………………………

          這個(gè)是控制器Action類

           

          package page;

          import org.apache.struts.action.*;

          import javax.servlet.http.*;

          import bean.Book;

          import java.util.*;

          import javax.sql.DataSource;

          public class PageListAction extends Action {

              ArrayList arrayList=new ArrayList();

              PageBean pd;

              public ActionForward execute(ActionMapping mapping,

                                           ActionForm form,

                                           HttpServletRequest request,

                                           HttpServletResponse response)

              throws Exception {

                  String action;

                  action=request.getParameter("action");

                  if(action==null||action.equals("null")) {

                      try {

                          arrayList=Book.getAllBook();

                      }

                      catch(Exception e) {

                          e.printStackTrace();

                      }

                      pd=new PageBean(arrayList);

                      Book[] books=pd.getBooks();

                      request.setAttribute("result",books);

                      request.setAttribute("page",pd);

                  }

                  else {

                      if(action=="nextPage"||action.equals("nextPage")) {

                          Book[] books=pd.getNextPage();

                          request.setAttribute("result",books);

                          request.setAttribute("page",pd);

                      }

                      if(action=="previousPage"||action.equals("previousPage")) {

                          Book[] books=pd.getPreviousPage();

                          request.setAttribute("resule",books);

                          request.setAttribute("page",pd);

                      }

                  }

                  return mapping.findForward("success");

              }

          }

          ………………………………………………………………………………….

          這個(gè)是pagebean類,主要負(fù)責(zé)分頁(yè)算法和邏輯處理

           

          package page;

           

          import bean.Book;

          import java.util.*;

           

          public class PageBean {

              int currentPage=1;//當(dāng)前頁(yè)數(shù)

              public int totalPages=0;//總頁(yè)數(shù)

              int pageRecorders=2;//每頁(yè)顯示數(shù)

              int totalRows=0;//總數(shù)據(jù)數(shù)

              int pageStartRow=0;//每頁(yè)的起始數(shù)

              int pageEndRow;//每頁(yè)的終止數(shù)

              boolean hasNextPage=false;//是否有下一頁(yè)

              boolean hasPreviousPage=false;//是否有前一頁(yè)

              ArrayList arrayList;

              Iterator it;

             

              public PageBean(ArrayList arrayList) {

                  this.arrayList=arrayList;

                  totalRows=arrayList.size();

                  it=arrayList.iterator();

                  hasPreviousPage=false;

                  currentPage=1;

                  if((totalRows%pageRecorders)==0) {

                      totalPages=totalRows/pageRecorders;

                  }

                  else {

                      totalPages=totalRows/pageRecorders+1;

                  }

                  if(currentPage>=totalPages) {

                      hasNextPage=false;

                  }

                  else {

                      hasNextPage=true;

                  }

                  if(totalRows<pageRecorders) {

                      this.pageStartRow=0;

                      this.pageEndRow=totalRows;

                  }

                  else {

                      this.pageStartRow=0;

                      this.pageEndRow=pageRecorders;

                  }

              }

             

              public void setCurrentPage(int currentPage) {

                  this.currentPage=currentPage;

              }

              public void setPageRecorders(int pageRecorders) {

                  this.pageRecorders=pageRecorders;

              }

              public void setHasNextPage(boolean hasNextPage) {

                  this.hasNextPage=hasNextPage;

              }

              public void setHasPreviosPage(boolean hasPreviosPage) {

                  this.hasPreviousPage=hasPreviousPage;

              }

           

              public String getCurrentPage() {

                  return this.toString(currentPage);

              }

              public String getTotalPages() {

                  return this.toString(totalPages);

              }

              public String getTotalRow() {

                  return this.toString(totalRows);

              }

              public int getPageRecorders() {

                  return pageRecorders;

              }

              public int getPageEndRow() {

                  return pageEndRow;

              }

              public int getPageStartRow() {

                  return pageStartRow;

              }

              public boolean isHasNextPage() {

                  return hasNextPage;

              }

              public boolean isHasPreviousPage() {

                  return hasPreviousPage;

              }

             

              public Book[] getNextPage() {

                  currentPage=currentPage+1;

                  if((currentPage-1)>0) {

                      hasPreviousPage=true;

                  }

                  else {

                      hasPreviousPage=false;

                  }

                  if(currentPage>=totalPages) {

                      hasNextPage=false;

                  }

                  else {

                      hasNextPage=true;

                  }

                  Book[] books=getBooks();

                  return books;

              }

             

              public Book[] getPreviousPage() {

                  currentPage=currentPage-1;

                  if(currentPage==0) {

                      currentPage=1;

                  }

                  if(currentPage>=totalPages) {

                      hasNextPage=false;

                  }

                  else {

                      hasNextPage=true;

                  }

                  if((currentPage-1)>0) {

                      hasPreviousPage=true;

                  }

                  else {

                      hasPreviousPage=false;

                  }

                  Book[] books=getBooks();

                  return books;

              }

             

              public Book[] getBooks() {

                  if(currentPage*pageRecorders<totalRows) {

                      pageEndRow=currentPage*pageRecorders;

                      pageStartRow=pageEndRow-pageRecorders;

                  }

                  else {

                      pageEndRow=totalRows;

                      pageStartRow=pageRecorders*(totalPages-1);

                  }

                  Book[] books=new Book[pageEndRow-pageStartRow+1];

                  int j=0;

                  for(int i=pageStartRow;i<pageEndRow;i++) {

                      Book book=(Book)arrayList.get(i);

                      books[j++]=book;

                  }

                  return books;

              }

             

              public String toString(int temp) {

                  String str=Integer.toString(temp);

                  return str;

              }

          }

          ……………………………………………………………………………….

          Book類,負(fù)責(zé)查詢數(shù)據(jù)庫(kù),把結(jié)果放到一個(gè)ArrayList中

           

          package bean;

           

          import java.sql.*;

          import java.util.ArrayList;

           

           

          public class Book {

             

              private String bookname;

              private String author;

              private String price;

             

              public Book(String name,String author,String price) {

                  this.bookname=name;

                  this.author=author;

                  this.price=price;

              }

             

              public void setBookname(String bookname) {

                  this.bookname=bookname;

              }

              public void setAuthor(String Author) {

                  this.author=author;

              }

              public void setPrice(String price) {

                  this.price=price;

              }

             

              public String getBookname() {

                  return bookname;

              }

              public String getAuthor() {

                  return author;

              }

              public String getPrice() {

                  return price;

              }

             

              public static ArrayList getAllBook() throws Exception {

                  String sql="select * from book";

                  SqlBean sq=new SqlBean();

                  ArrayList arrayList=new ArrayList();

                  try

                  {

                      ResultSet resultSet=sq.select(sql);

                      while(resultSet.next()) {

                          String name=resultSet.getString("name");

                          String author=resultSet.getString("author");

                          String price=resultSet.getString("price");

                          Book book=new Book(name,author,price);

                          arrayList.add(book);

                      }

                      resultSet.close();

                  }

                  catch(SQLException e)

                  {

                      System.out.println("數(shù)據(jù)庫(kù)錯(cuò)誤"+e.toString());

                  }

                  return arrayList;

              }

          }

          ………………………………………………………………………………..

          這個(gè)是SqlBook,負(fù)責(zé)和數(shù)據(jù)庫(kù)建立一個(gè)連接的Bean

           

          package bean;

           

          import java.sql.Connection;

          import java.sql.DriverManager;

          import java.sql.ResultSet;

          import java.sql.Statement;

           

          public class SqlBean {

              String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=eBookStore";

              Connection con=null;

              Statement sta=null;

              public SqlBean() {

                  try

                  {

                      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

                      con=DriverManager.getConnection(url,"sa","");

                      sta=con.createStatement();

                  }

                  catch(Exception e)

                  {

                      System.out.println("連接錯(cuò)誤"+e.toString());

                  }

              }

             

              public ResultSet select(String selects) throws Exception

              {

                  return sta.executeQuery(selects);

              }

          }

          …………………………………………………………………………

          這個(gè)是負(fù)責(zé)顯示分頁(yè)的JSP頁(yè).pagetest.jsp

           

          <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

          <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

          <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>

          <%@ page contentType="text/html;charset=gb2312"%>

           

          <html:html locale="true">

            <head>

            </head>

           

            <body>

              <table border="1">

                <tr><th>書名</th><th>作者</th><th>價(jià)格</th></tr>

                <logic:present name="result">

                  <logic:iterate id="book" name="result" type="bean.Book">

                    <logic:present name="book">

                      <tr>

                        <td><bean:write name="book" property="bookname"/></td>

                        <td><bean:write name="book" property="author"/></td>

                        <td><bean:write name="book" property="price"/></td>

                      </tr>

                    </logic:present>

                  </logic:iterate>

                </logic:present>

              </table>

             

              <logic:present name="page">

                <logic:equal name="page" property="hasNextPage" value="true">

                  <html:link page="/haha.do?action=nextPage">nextPage</html:link>

                </logic:equal>

                <logic:equal name="page" property="hasPreviousPage" value="true">

                  <html:link page="/haha.do?action=previousPage">previousPage</html:link>

                </logic:equal>

               

                       共分<bean:write name="page" property="totalPages"/>頁(yè)顯示,當(dāng)前是

                           <bean:write name="page" property="currentPage"/>頁(yè).

              </logic:present>

            </body>

          </html:html>

          …………………………………………………………………………………

          這個(gè)是首頁(yè)的JSP頁(yè)面,只有一個(gè)連接.提交一個(gè)haha.do的請(qǐng)求

           

          <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

          <%@ page contentType="text/html;charset=gb2312" language="java"%>

           

          <html:html>

            <head>

            </head>

            <body>

              <html:link action="haha.do">GotoPage</html:link>

            </body>

          </html:html>

          posted on 2005-11-12 09:13 我心依舊 閱讀(15124) 評(píng)論(25)  編輯  收藏

          FeedBack:
          # re: Struts分頁(yè)顯示
          2005-11-12 10:57 | blueleo
          這個(gè)分頁(yè)是一次性把數(shù)據(jù)都放在ArrayList中,如果數(shù)據(jù)量很大的話,這種方式有點(diǎn)欠妥。  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2006-03-01 21:43 | tomcat
          如果數(shù)據(jù)量很大的話,可以采用再次查詢的方式,
          但這也是用時(shí)間換取空間的辦法。  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2006-03-10 13:25 | 竹筍炒肉
          初步看了一下你的代碼,談?wù)勛约旱目捶ǎ?

          你的分頁(yè)首次查詢耗費(fèi)的時(shí)間很多(特別當(dāng)記錄很多時(shí)就會(huì)難以實(shí)現(xiàn)),但是當(dāng)讀取下一頁(yè),或者上一頁(yè)時(shí),不用查詢數(shù)據(jù)庫(kù),直接從第一次讀取的數(shù)據(jù)中拿出來(lái),確實(shí)可以節(jié)省資源和時(shí)間。但是有點(diǎn)問題:注意ACTION是多線程的,當(dāng)服務(wù)器啟動(dòng)后會(huì)實(shí)例化一個(gè)對(duì)象常駐內(nèi)存中,并且可以被多個(gè)線程調(diào)用,而你把PageBean對(duì)象和ArrayList對(duì)象作為ACTION的屬性放置(你也是利用了這個(gè)特性才能把首次查詢的記錄得以保留,以便當(dāng)讀取下一頁(yè)時(shí)直接利用,不用每次都查詢數(shù)據(jù)庫(kù)),就會(huì)有線程之間爭(zhēng)奪資源的情況發(fā)生,也就是典型的線程同步問題,所以當(dāng)多個(gè)線程并行訪問時(shí)會(huì)出錯(cuò)。  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2006-03-16 08:16 | dalianfox
          @竹筍炒肉
          也是剛學(xué)struts,感覺竹筍炒肉說得很對(duì)。

          除了同步問題以外,感覺單人操作沒有問題,如果幾個(gè)人同時(shí)操作
          是不是互相影響呢?  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2006-04-26 11:38 |
          這種方法非常不妥,應(yīng)該采取有限記錄數(shù)獲取方式。  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2006-06-26 14:48 | surfonline
          應(yīng)當(dāng)把記錄集放在session中,這樣就不會(huì)沖突了
          但是如果記錄數(shù)太多的話,效率就很低了  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2006-11-08 14:08 | bruce[匿名]
          我是用hibernate的分頁(yè)
          可以很方便的實(shí)現(xiàn)在持久層實(shí)現(xiàn)
          然后用struts實(shí)現(xiàn)
          你的前端我可以復(fù)用 只要該該后面就ok了
          寫的不錯(cuò)
            回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2007-04-02 22:48 | amen
          的確,上一頁(yè)時(shí)是不能查詢的,要解決應(yīng)該怎么改呢??  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2007-04-12 16:17 | 無(wú)
          這種分頁(yè)有弊端的.因?yàn)锳CTION類是單實(shí)例也為單線程當(dāng)多人訪問是回出現(xiàn)頁(yè)面混亂  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示[未登錄]
          2007-05-18 13:35 | 流水
          樓主你好,你的這段代碼如何重用?
          當(dāng)你要實(shí)現(xiàn)很多不同頁(yè)面的分頁(yè)(不僅是book,還有班級(jí),學(xué)生等),難道在pageBean中都要分別定義getStudents();getClasses();  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2007-09-17 15:57 | 同聲傳譯
          中外文水平俱佳; 英語(yǔ)八級(jí)或接近八級(jí),其他語(yǔ)種譯者需具備相當(dāng)專業(yè)水平;
          優(yōu)先招聘有翻譯經(jīng)驗(yàn)且具有工科、財(cái)經(jīng)和法律等實(shí)用性強(qiáng)的專業(yè)學(xué)位的兼職翻譯;
          優(yōu)先招聘有時(shí)間保證且有非語(yǔ)言專業(yè)背景的自由職業(yè)者;
            回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2007-11-07 17:23 | 尊重
          請(qǐng)幫忙 按照你的方法有再點(diǎn)擊下一頁(yè)時(shí)錯(cuò)誤啊
          exception

          javax.servlet.ServletException: java.util.HashMap
          org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
          org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
          org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
          org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
          org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

            回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2008-05-02 20:23 | 無(wú)
          無(wú)法實(shí)現(xiàn)代碼復(fù)用,不好,我用范型改了改,可沒實(shí)現(xiàn)有點(diǎn)問題  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2008-05-08 17:01 | 剛來(lái)不久
          講的非常的詳細(xì),對(duì)于我門這樣的,剛剛接觸,不了解的人有很大的幫助,先謝謝你了,不過聽那么多前輩說了后,我現(xiàn)在感覺我不知道該不該照你的方法去做了,如果誰(shuí)還有更好的方法,希望他能想樓主那樣,詳細(xì)的解釋完后把具體代碼都給看看,我感覺著樣理解起來(lái)對(duì)我這樣初學(xué)者是很大的幫助,希望哪位高手如果有關(guān)這方面的代碼和詳細(xì)解說,給我一份,不勝感激!謝謝!!!

          我的郵箱:

          yzg000123@sina.com  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2008-07-14 17:54 | struts初學(xué)者
          其實(shí)我作分頁(yè)的時(shí)候也是一次性把所有的數(shù)據(jù)都放入ArrayList里面的,到現(xiàn)在我還在找怎樣實(shí)現(xiàn)這樣的效果:
          首頁(yè) 上一頁(yè) 1 2 3 4 5 下一頁(yè) 尾頁(yè)
          就是怎樣將數(shù)字遍歷上去不知道了!知道的兄弟姐妹們請(qǐng)發(fā):
          qulimin1988@gmail.com
            回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示[未登錄]
          2008-07-14 20:53 | javaread.com
          真擔(dān)心數(shù)據(jù)量大的時(shí)候會(huì)怎樣。。。  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2008-07-22 14:40 | struts新手
          樓主能不能加我QQ446283171,我用你的代碼出現(xiàn)java.lang.NullPointerException錯(cuò)誤,解決不了,急!!!  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2008-08-24 14:44 | 想瘦每一天
          getAllBook似乎不太合適。用rownum控制一下應(yīng)該更好些吧?
          胡亂一說:)  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2008-09-01 11:38 |
          你的分頁(yè)也太耗性能了吧, 還是考慮一下一次取出頁(yè)面要顯示的數(shù)據(jù)  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2008-09-09 13:48 | tet
          小型應(yīng)用還可以,大型應(yīng)用就得考慮是不是分量查詢了  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2008-12-09 21:51 | 阿春
          非常希望您好能不能給我一個(gè),初學(xué)者多多指教!744327541@qq.com
          masterluo@eyou.com  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2009-03-28 17:23 | Struts-page
          關(guān)于previousPage的代碼有錯(cuò)誤!  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2009-03-28 18:12 | Struts-page
          request.setAttribute("resule",books);

          改為

          request.setAttribute("result",books);

          要不向前翻頁(yè)顯示不吃數(shù)據(jù)!!  回復(fù)  更多評(píng)論
            
          # re: Struts分頁(yè)顯示
          2009-06-02 00:29 | sdafd
          # re: Struts分頁(yè)顯示
          2009-08-03 22:19 | mastermouse
          重用性相當(dāng)差  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 扶风县| 偏关县| 邵阳市| 莱阳市| 资兴市| 乌拉特中旗| 阳春市| 南京市| 宜都市| 卓尼县| 南和县| 盐山县| 弋阳县| 漳浦县| 婺源县| 辽源市| 莲花县| 浠水县| 岱山县| 海盐县| 三河市| 崇左市| 濮阳县| 七台河市| 通州区| 峨眉山市| 三穗县| 奎屯市| 钦州市| 富锦市| 都江堰市| 固始县| 芷江| 紫金县| 蒲城县| 邢台县| 驻马店市| 潮州市| 桂东县| 宜都市| 射阳县|