最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringMVC的常見(jiàn)數(shù)據(jù)綁定實(shí)戰(zhàn)舉例(以登錄為例演練)

 更新時(shí)間:2025年09月20日 11:46:15   作者:安清h  
文章以登錄功能為例,詳解SpringMVC的數(shù)據(jù)綁定機(jī)制,涵蓋簡(jiǎn)單類型、POJO、自定義轉(zhuǎn)換器(如Date和Signon)、數(shù)組及集合類型等場(chǎng)景,通過(guò)Signon類和相關(guān)控制器方法演示如何處理不同數(shù)據(jù)類型的綁定與驗(yàn)證,感興趣的朋友跟隨小編一起看看吧

??SpringMVC的簡(jiǎn)單數(shù)據(jù)綁定

下面將會(huì)以登錄為例演練并介紹各種類型的數(shù)據(jù)綁定,以Signon類為例:

??創(chuàng)建Signon類

定義一個(gè)名為 Signon 的Java類,用于存儲(chǔ)用戶名和密碼,并提供了這兩個(gè)變量的公共getter和setter方法。具體代碼如下:

public class Signon {
    String uname1;
    String pwd;
    public String getUname1() {
        return uname1;
    }
    public void setUname1(String uname1) {
        this.uname1 = uname1;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
}

??創(chuàng)建SignonDao接口

定義一個(gè)名為 SignonDao 的Java接口,其中包含一個(gè)公共方法 findSignonByUnameAndPwd。具體代碼如下:

public interface SignonDao {
    public int findSignonByUnameAndPwd(String uname,String pwd);
}

??創(chuàng)建SignonDaoImp類

定義一個(gè)名為 SignonDaoImp 的Java類,它實(shí)現(xiàn)了 SignonDao 接口,并使用 @Repository 注解標(biāo)記為Spring框架中的持久層組件。這個(gè)類提供了 findSignonByUnameAndPwd 方法的具體實(shí)現(xiàn),該方法接收用戶名(uname)和密碼(pwd)作為參數(shù),并檢查它們是否與預(yù)設(shè)的值("tom"和"12345")相匹配。如果匹配,方法返回1,表示用戶驗(yàn)證成功;如果不匹配,方法返回0,表示用戶驗(yàn)證失敗。具體代碼如下:

public class SignonDaoImp implements SignonDao {
    @Override
    public int findSignonByUnameAndPwd(String uname, String pwd) {
        if ("tom".equals(uname) && "12345".equals(pwd))
            return 1;
        return 0;
    }
}

??創(chuàng)建SignonService接口

定義一個(gè)名為 SignonService 的Java接口,其中包含一個(gè)公共方法 checkByUnameAndPwd。具體代碼如下:

public interface SignonService {
    public boolean checkByUnameAndPwd(String uname,String pwd);
}

??創(chuàng)建SignonServiceImp類

定義一個(gè)名為 SignonServiceImp 的Java類,它實(shí)現(xiàn)了 SignonService 接口,并使用 @Service 注解標(biāo)記為Spring框架中的服務(wù)層組件。類中注入了一個(gè) SignonDao 類型的成員變量 sd,用于訪問(wèn)數(shù)據(jù)訪問(wèn)層。SignonServiceImp 類實(shí)現(xiàn)了 checkByUnameAndPwd 方法,該方法接收用戶名和密碼作為參數(shù),并調(diào)用 sdfindSignonByUnameAndPwd 方法來(lái)檢查數(shù)據(jù)庫(kù)中是否存在匹配的用戶記錄。如果 findSignonByUnameAndPwd 方法返回1,表示驗(yàn)證成功,checkByUnameAndPwd 方法返回 true;否則返回 false,表示驗(yàn)證失敗。具體代碼如下:

@Service
public class SignonServiceImp implements SignonService{
    @Autowired
    SignonDao sd;
    @Override
    public boolean checkByUnameAndPwd(String uname, String pwd) {
        if(sd.findSignonByUnameAndPwd(uname,pwd)==1)
            return true;
        return false;
    }
}

??創(chuàng)建web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/c"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/"/>
    <property name="suffix" value=".jsp"/>
</bean>
    <bean name="/firsttest" class="FirstController"/>
    <context:component-scan base-package="com.hkd"/>
</beans>

 以上內(nèi)容為下面統(tǒng)一會(huì)用到的,下面內(nèi)容主要為login登錄頁(yè)面和測(cè)試類。

??默認(rèn)類型數(shù)據(jù)綁定

?創(chuàng)建控制器類LoginController

使用Spring框架的Java Web應(yīng)用程序中的控制器類`LoginController`,它負(fù)責(zé)處理用戶登錄請(qǐng)求。類中注入了一個(gè)名為`SignonService`的自動(dòng)裝配服務(wù),該服務(wù)包含驗(yàn)證用戶憑據(jù)的方法。`LoginController`類中的`login1`方法通過(guò)`@RequestMapping("/login1")`注解映射到`/login1`的HTTP請(qǐng)求。該方法接收一個(gè)`HttpServletRequest`對(duì)象和一個(gè)`Model`對(duì)象作為參數(shù),從請(qǐng)求中獲取用戶名和密碼,然后調(diào)用`SignonService`的`checkByUnameAndPwd`方法來(lái)驗(yàn)證這些憑據(jù)。如果驗(yàn)證成功,方法會(huì)將用戶名和密碼添加到模型中,并返回視圖名稱`"welcome"`;如果驗(yàn)證失敗,則返回視圖名稱`"error"`。

@Controller
public class LoginController {
    @Autowired
    SignonService ss;
    @RequestMapping("/login1")
    public String login1(HttpServletRequest request, Model model){
        String uname=request.getParameter("uname");
        String pwd=request.getParameter("pwd");
        boolean flag=ss.checkByUnameAndPwd(uname,pwd);
        if(flag){
            model.addAttribute("uname",uname);
            model.addAttribute("pwd",pwd);
            return "welcome";
        }else{
            return "error";
        }
    }
}

?創(chuàng)建登錄頁(yè)面login1.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form method="post" action="login1">
    用戶名:<input type="text" name="uname">
    密碼:<input type="text" name="pwd">
    <input type="submit" value="提交"><input type="reset" value="重置">
</form>
</body>
</html>

輸入正確的用戶名和密碼后跳轉(zhuǎn)到的界面如下:

??簡(jiǎn)單數(shù)據(jù)類型綁定

?創(chuàng)建控制器類LoginController

在控制器LoginController類中創(chuàng)建login2方法:

    @RequestMapping("/login2")
    public String login2(String uname,String pwd,Model model){
        boolean flag=ss.checkByUnameAndPwd(uname, pwd);
        if(flag){
            model.addAttribute("uname",uname);
            model.addAttribute("pwd",pwd);
            return "welcome";
        }else{
            return "error";
        }
    }

?創(chuàng)建登錄頁(yè)面login2.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form method="post" action="login2">
    用戶名:<input type="text" name="uname">

    密碼:<input type="text" name="pwd">

    <input type="submit" value="提交"><input type="reset" value="重置">
</form>
</body>
</html>

登錄成功之后頁(yè)面和上面一樣。

??POJO綁定

?創(chuàng)建控制器類LoginController

定義`LoginController`類中的`login3`方法,它通過(guò)`@RequestMapping("/login3")`注解映射到`/login3`的HTTP請(qǐng)求。該方法接收一個(gè)`Signon`對(duì)象和一個(gè)`Model`對(duì)象作為參數(shù),使用`Signon`對(duì)象中的用戶名和密碼調(diào)用`ss.checkByUnameAndPwd`方法進(jìn)行驗(yàn)證。如果驗(yàn)證成功,將用戶名和密碼添加到模型中并返回`"welcome"`視圖;如果驗(yàn)證失敗,則返回`"error"`視圖。

    @RequestMapping("/login3")
    public String login3(Signon signon,Model model){
        boolean flag=ss.checkByUnameAndPwd(signon.getUname(),signon.getPwd());
        if(flag){
            model.addAttribute("uname",signon.getUname());
            model.addAttribute("pwd",signon.getPwd());
            return "welcome";
        }else{
            return "error";
        }

?創(chuàng)建登錄頁(yè)面login3.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="login3" method="post">
    用戶名:<input type="text" name="uname">

    密碼:<input type="password" name="pwd">

    <input type="submit" value="提交"><input type="reset" value="重置">
</form>
</body>
</html>

??自定義類型轉(zhuǎn)換器

第一種以Date為例:

?創(chuàng)建DateConvert類

定義一個(gè)名為`DateConvert`的類,它實(shí)現(xiàn)了`Converter<String, Date>`接口,用于將字符串轉(zhuǎn)換為`Date`對(duì)象。在`convert`方法中,它使用`SimpleDateFormat`類以"yyyy-MM-dd"格式解析傳入的字符串參數(shù)`source`。如果解析成功,返回對(duì)應(yīng)的`Date`對(duì)象;如果解析失敗,拋出`ParseException`,并由`catch`塊捕獲后拋出一個(gè)`RuntimeException`。

public class DateConvert implements Converter<String,Date>{
    public Date convert(String source){
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Date date=null;
        try {
            date=sdf.parse(source);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
        return date;
    }
}

?修改spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="
           http://www.springframework.org/schema/beans 
           http://www.springframework.org/schema/beans/spring-beans.xsd 
           http://www.springframework.org/schema/aop 
           http://www.springframework.org/schema/aop/spring-aop.xsd 
           http://www.springframework.org/schema/context 
           https://www.springframework.org/schema/context/spring-context.xsd 
           http://www.springframework.org/schema/mvc 
           http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--        配置Spring MVC要掃描的包-->
<context:component-scan base-package="com.hkd"/>
    <!--    配置視圖解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--  前綴  -->
        <property name="prefix" value="/WEB-INF/"/>
        <!--  后綴  -->
        <property name="suffix" value=".jsp"/>
    </bean>
    <bean id="DateConvert" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean class="com.hkd.DateConvert"/>
            </set>
        </property>
    </bean>
<!--    <mvc:annotation-driven conversion-service="DateConvert"/>-->
<mvc:annotation-driven conversion-service="DateConvert"/>
</beans>

?創(chuàng)建控制器類LoginController

    @RequestMapping("/login4")
    public String login4(int age, @DateTimeFormat(pattern = "yyyy-MM-dd") Date birthday){
        System.out.println(birthday);
        System.out.println(age);
        return "welcome";
    }

?創(chuàng)建登錄頁(yè)面login4.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="login4" method="post">
    年齡:<input type="text" name="age">
    生日:<input type="text" name="birthday">
    <input type="submit" value="提交"> <input type="reset" value="重置">
</form>
</body>
</html>

第二種以Signon為例:

??創(chuàng)建SignonConvert類

定義一個(gè)名為`SignonConvert`的類,它實(shí)現(xiàn)了`Converter<String, Signon>`接口,用于將一個(gè)包含用戶名和密碼(以逗號(hào)分隔)的字符串轉(zhuǎn)換為一個(gè)`Signon`對(duì)象。在`convert`方法中,使用`StringTokenizer`對(duì)輸入字符串進(jìn)行分割,提取出用戶名和密碼,然后創(chuàng)建一個(gè)新的`Signon`實(shí)例并設(shè)置這些屬性,最后返回這個(gè)`Signon`對(duì)象。

public class SignonConvert implements Converter<String,Signon>{
    public Signon convert(String source){
        StringTokenizer st=new StringTokenizer(source,",");
        String uname=st.nextToken();
        String pwd=st.nextToken();
        Signon signon=new Signon();
        signon.setUname(uname);
        signon.setPwd(pwd);
        return signon;
    }
}

??修改spring-mvc.xml類

在文件spring-mvc.xml中添加如下代碼:

    <bean id="SignonConvert" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean class="com.hkd.SignonConvert"/>
            </set>
        </property>
    </bean>
    <mvc:annotation-driven conversion-service="SignonConvert"/>

??創(chuàng)建控制器類LoginController

    @RequestMapping("/login5")
    public String login6(Signon signon){
        System.out.println(signon.getUname()+","+signon.getPwd());
        return "welcome";
    }

??創(chuàng)建登錄頁(yè)面login5.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <form action="login5" method="post">
        用戶信息(用戶名,密碼之間以逗號(hào)隔開(kāi)):<input type="text" name="signon">
        <input type="submit" value="提交"><input type="reset" value="重置">
    </form>
</body>
</html>

??數(shù)組類型

?創(chuàng)建控制器類LoginController

定義一個(gè)名為`login6`的方法,它通過(guò)`@RequestMapping("/login6")`注解映射到`/login6`的HTTP請(qǐng)求。該方法接收一個(gè)名為`uname`的字符串?dāng)?shù)組作為參數(shù),并遍歷數(shù)組中的每個(gè)字符串,將它們打印到控制臺(tái)。無(wú)論數(shù)組內(nèi)容如何,最終方法都會(huì)返回`"welcome"`視圖。

    @RequestMapping("/login6")
    public String login6(String uname[]){
        for(String str:uname){
            System.out.println(str);
        }
        return "welcome";
    }
}

?創(chuàng)建登錄頁(yè)面login6.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="login6" method="post">
    用戶1<input type="text" name="uname">
    用戶1<input type="text" name="uname">
    用戶1<input type="text" name="uname">
    用戶1<input type="text" name="uname">
    用戶1<input type="text" name="uname">
    用戶1<input type="text" name="uname">
    <input type="submit" value="提交"><input type="reset" value="重置">
</form>
</body>
</html>

??集合類型

?創(chuàng)建控制器類LoginController

定義一個(gè)名為`login7`的Spring MVC控制器方法,它通過(guò)`@RequestMapping("/login7")`注解映射到`/login7`的HTTP請(qǐng)求。該方法接收一個(gè)名為`uname`的`List<String>`類型的請(qǐng)求參數(shù),表示用戶名列表,并將這些用戶名打印到控制臺(tái)。隨后,它將用戶名列表添加到模型中,以便在視圖中使用,并最終返回名為`"welcome8"`的視圖。

    @RequestMapping("/login7")
    public String login7(@RequestParam("uname")List<String> uname,Model model){
        for(String str:uname){
            System.out.println(str);
        }
        model.addAttribute("uname",uname);
        return "welcome8";
    }

?創(chuàng)建登錄頁(yè)面login6.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="login7" method="post">
    用戶1<input type="text" name="uname">
    用戶1<input type="text" name="uname">
    用戶1<input type="text" name="uname">
    用戶1<input type="text" name="uname">
    用戶1<input type="text" name="uname">
    <input type="submit" value="提交"><input type="reset" value="重置">
</form>
</body>
</html>

?創(chuàng)建welcome8.jsp頁(yè)面

<c:forEach item="${uname}" var="data">:這個(gè)標(biāo)簽開(kāi)始一個(gè)循環(huán),它告訴JSP頁(yè)面遍歷uname集合中的每個(gè)元素。item屬性指定了要遍歷的集合,var屬性定義了在循環(huán)體內(nèi)代表當(dāng)前元素的變量名(在這里是data)。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<c:forEach items="${uname}" var="data">
    ${data}
</c:forEach>
</body>
</html>

在框內(nèi)輸入以下內(nèi)容:

跳轉(zhuǎn)后的頁(yè)面為:

??將集合類型數(shù)據(jù)作為POJO類的數(shù)據(jù)成員

?創(chuàng)建User類

public class User {
    List<String> uname;
    public List<String> getUname() {
        return uname;
    }
    public void setUname(List<String> uname) {
        this.uname = uname;
    }
}

?創(chuàng)建控制器類LoginController

定義一個(gè)名為`login8`的Spring MVC控制器方法,它通過(guò)`@RequestMapping("/login8")`注解映射到`/login8`的HTTP請(qǐng)求。該方法接收一個(gè)`User`類型的參數(shù)`user`,假設(shè)`User`類有一個(gè)`getUname`方法返回一個(gè)`String`集合。方法中遍歷這個(gè)集合,將每個(gè)用戶名打印到控制臺(tái),然后返回`"welcome"`視圖。

    @RequestMapping("/login8")
    public String login8(User user){
        for(String str: user.getUname()){
            System.out.println(str);
        }
        return "welcome";
    }

?創(chuàng)建登錄頁(yè)面login8.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="login8" method="post">
    用戶1<input type="text" name="uname">
    用戶1<input type="text" name="uname">
    用戶1<input type="text" name="uname">
    用戶1<input type="text" name="uname">
    用戶1<input type="text" name="uname">
    <input type="submit" value="提交"><input type="reset" value="重置">
</form>
</body>
</html>

以上就是本期介紹的全部?jī)?nèi)容了,主要是關(guān)于數(shù)據(jù)綁定。如果您感興趣的話,可以訂閱我的相關(guān)專欄。非常感謝您的閱讀,如果這篇文章對(duì)您有幫助,那將是我的榮幸。我們下期再見(jiàn)啦??!

到此這篇關(guān)于SpringMVC的常見(jiàn)數(shù)據(jù)綁定的文章就介紹到這了,更多相關(guān)SpringMVC數(shù)據(jù)綁定內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring中緩存注解@Cache的使用詳解

    Spring中緩存注解@Cache的使用詳解

    這篇文章主要介紹了Spring中緩存注解@Cache的使用詳解,使用注解對(duì)數(shù)據(jù)進(jìn)行緩存功能的框架,只需要簡(jiǎn)單地加一個(gè)注解,就能實(shí)現(xiàn)緩存功能,大大簡(jiǎn)化我們?cè)跇I(yè)務(wù)中操作緩存的代碼,需要的朋友可以參考下
    2023-07-07
  • IDEA代碼警告(warning)整理以及解決方案

    IDEA代碼警告(warning)整理以及解決方案

    在日常開(kāi)發(fā)中,IntelliJ?IDEA會(huì)通過(guò)problems窗口和編輯窗口的黃色標(biāo)記提示警告,這些警告可能指示代碼存在潛在風(fēng)險(xiǎn)或需要優(yōu)化的空間,文章介紹了如何利用IDEA檢查代碼,以及針對(duì)常見(jiàn)警告的原因和解決辦法
    2024-10-10
  • Java實(shí)現(xiàn)冒泡排序算法

    Java實(shí)現(xiàn)冒泡排序算法

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)冒泡排序算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 這一次搞懂SpringMVC原理說(shuō)明

    這一次搞懂SpringMVC原理說(shuō)明

    這篇文章主要介紹了這一次搞懂SpringMVC原理說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Java使用Filter實(shí)現(xiàn)登錄驗(yàn)證

    Java使用Filter實(shí)現(xiàn)登錄驗(yàn)證

    本文主要介紹了Java使用Filter實(shí)現(xiàn)登錄驗(yàn)證,Filter類似于門衛(wèi),你在進(jìn)入之前門衛(wèi)需要盤查你,身份合法進(jìn)入,身份不合法攔截,感興趣的可以了解一下
    2023-11-11
  • SpringMVC統(tǒng)一異常處理實(shí)例代碼

    SpringMVC統(tǒng)一異常處理實(shí)例代碼

    這篇文章主要介紹了SpringMVC統(tǒng)一異常處理實(shí)例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • HashMap底層原理全面詳解面試絕對(duì)不慌

    HashMap底層原理全面詳解面試絕對(duì)不慌

    這篇文章主要介紹了HashMap底層實(shí)現(xiàn)原理詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Java開(kāi)發(fā)中synchronized的定義及用法詳解

    Java開(kāi)發(fā)中synchronized的定義及用法詳解

    這篇文章主要介紹了Java開(kāi)發(fā)中synchronized的定義及用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 詳解Spring中的FactoryBean

    詳解Spring中的FactoryBean

    本篇文章主要介紹了Spring中的FactoryBean,如果一個(gè)bean的創(chuàng)建過(guò)程中涉及到很多其他的bean 和復(fù)雜的邏輯,用xml配置比較困難,這時(shí)可以考慮用FactoryBean
    2017-04-04
  • Java獲取七牛云存儲(chǔ)空間中圖片外鏈

    Java獲取七牛云存儲(chǔ)空間中圖片外鏈

    本文主要介紹了Java獲取七牛云存儲(chǔ)空間中圖片外鏈,需要獲取在七牛云中存儲(chǔ)的所有圖片,并返回外鏈地址,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10

最新評(píng)論

卢氏县| 阿克苏市| 周口市| 岳池县| 集安市| 岫岩| 牡丹江市| 通海县| 昌都县| 白银市| 介休市| 恩施市| 新津县| 汕头市| 栾川县| 枣庄市| 当涂县| 江源县| 南华县| 平乐县| 乐至县| 中山市| 东丰县| 万州区| 青浦区| 大英县| 西藏| 墨脱县| 神池县| 望都县| 新津县| 河东区| 秭归县| 新营市| 无为县| 礼泉县| 徐汇区| 广饶县| 永城市| 禹城市| 夹江县|