精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

JSP自定義標(biāo)簽實(shí)現(xiàn)數(shù)據(jù)字典

開發(fā) 后端
數(shù)據(jù)字典就是使用的下拉框,只要定義使用那個字典就會將這個字典可用的內(nèi)容顯示出來。本文將講解怎么自定義標(biāo)簽實(shí)現(xiàn)數(shù)據(jù)字典。

1、關(guān)于JSP標(biāo)簽的好處就不再羅嗦

數(shù)據(jù)字典就是使用的下拉框,只要定義使用那個字典就會將這個字典可用的內(nèi)容顯示出來

顯示字典時(shí)只要定義那個字典和屬性值就可以顯示出字典的顯示值

 

2、首先在web.xml中定義自定義標(biāo)簽加載的引用,兩個屬性分別是引用的URI和加載路徑

  1. <?xml version="1.0" encoding="UTF-8"?>    
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"    
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee       
  5.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">    
  6.     <welcome-file-list>    
  7.         <welcome-file>index.jsp</welcome-file>    
  8.     </welcome-file-list>    
  9.     <jsp-config>    
  10.         <taglib>    
  11.             <taglib-uri>/tld/web-html</taglib-uri>    
  12.             <taglib-location>    
  13.                 /WEB-INF/tlds/web-html.tld    
  14.             </taglib-location>    
  15.         </taglib>    
  16.     </jsp-config>    
  17. </web-app>   

3、在web-html.tld中定義自己的標(biāo)簽,數(shù)據(jù)字典應(yīng)用的話我們需要一個標(biāo)簽庫,三個標(biāo)簽。分別是,select標(biāo)簽,options標(biāo)簽,和現(xiàn)實(shí)數(shù)據(jù)字典的標(biāo)簽,每個標(biāo)簽都對應(yīng)不同的實(shí)現(xiàn)類

  1. <?xml version="1.0" encoding="UTF-8"?>    
  2. <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"      
  3.     "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">    
  4. <taglib>    
  5.     <tlib-version>1.0</tlib-version><!-- 標(biāo)簽庫版本 -->    
  6.     <jsp-version>1.2</jsp-version>  <!-- 標(biāo)簽庫要求的JSP規(guī)范版本 -->    
  7.     <short-name>html</short-name>   <!-- JSP頁面編寫工具可以用來創(chuàng)建助記名的可選名字 -->    
  8.     <tag>    
  9.         <name>select</name>    
  10.         <tag-class>com.SelectTag</tag-class>    
  11.         <body-content>JSP</body-content>    
  12.         <attribute>    
  13.             <name>name</name>    
  14.             <rtexprvalue>true</rtexprvalue>    
  15.         </attribute>    
  16.         <attribute>    
  17.             <name>style</name>    
  18.             <rtexprvalue>true</rtexprvalue>    
  19.         </attribute>    
  20.     </tag>    
  21.     <tag>    
  22.         <name>options</name>    
  23.         <tag-class>com.OptionsTag</tag-class>    
  24.         <body-content>JSP</body-content>    
  25.         <attribute>    
  26.             <name>collection</name>    
  27.             <rtexprvalue>true</rtexprvalue>    
  28.         </attribute>    
  29.     </tag>    
  30.     <tag>    
  31.         <name>selectDisplay</name>    
  32.         <tag-class>com.SelectDisplay</tag-class>    
  33.         <body-content>JSP</body-content>    
  34.         <attribute>    
  35.             <name>collection</name>    
  36.             <rtexprvalue>true</rtexprvalue>    
  37.         </attribute>    
  38.         <attribute>    
  39.             <name>name</name>    
  40.             <rtexprvalue>true</rtexprvalue>    
  41.         </attribute>    
  42.         <attribute>    
  43.             <name>value</name>    
  44.             <rtexprvalue>true</rtexprvalue>    
  45.         </attribute>    
  46.     </tag>    
  47. </taglib>   

4、實(shí)現(xiàn)類

實(shí)現(xiàn)類的作用就是在后臺拼接所需HTML標(biāo)簽內(nèi)容,然后由JSP進(jìn)行輸出

實(shí)現(xiàn)類最主要的兩個方法,一個遇到這個標(biāo)簽開始時(shí)輸出,一個是結(jié)束時(shí)輸出

如果需要定義屬性,可以參考實(shí)現(xiàn)類定義屬性,并在TLD中定義,在JSP中使用標(biāo)簽時(shí)快捷鍵就可以出來這個屬性

首先是select標(biāo)簽的代碼:

  1. package com;    
  2. import java.io.IOException;    
  3. import javax.servlet.jsp.JspException;    
  4. import javax.servlet.jsp.JspTagException;    
  5. import javax.servlet.jsp.tagext.BodyTagSupport;    
  6. /**   
  7.  * TagSupport與BodyTagSupport的區(qū)別:   
  8.  * 主要看標(biāo)簽處理類是否要讀取標(biāo)簽體的內(nèi)容和改變標(biāo)簽體返回的內(nèi)容,如果不需要就用TagSupport,否則就用BodyTagSupport   
  9.  * 用TagSupport實(shí)現(xiàn)的標(biāo)簽,都可以用BodyTagSupport來實(shí)現(xiàn),因?yàn)锽odyTagSupport繼承了TagSupport   
  10.  */    
  11. @SuppressWarnings("serial")    
  12. public class SelectTag extends BodyTagSupport {    
  13.     @Override    
  14.     public int doStartTag() throws JspException {    
  15.         try {    
  16.             StringBuffer results = new StringBuffer("<select");    
  17.             if(name != null){    
  18.                 results.append(" name=\"");    
  19.                 results.append(name);    
  20.                 results.append("\"");    
  21.             }    
  22.             if(style != null){    
  23.                 results.append(" style=\"");    
  24.                 results.append(style);    
  25.                 results.append("\"");    
  26.             }    
  27.             results.append(">");    
  28.             pageContext.getOut().write(results.toString());    
  29.         } catch (IOException ex) {    
  30.             throw new JspTagException("錯誤");    
  31.         }    
  32.         return EVAL_BODY_INCLUDE;    
  33.     }    
  34.     @Override    
  35.     public int doEndTag() throws JspException {    
  36.         try {    
  37.             StringBuffer results = new StringBuffer("");    
  38.             // 因?yàn)橄吕邪吕瓋?nèi)容,所以只能在遇到結(jié)束標(biāo)簽時(shí)才能寫select結(jié)束    
  39.             results.append("</select>");              
  40.             pageContext.getOut().write(results.toString());    
  41.         } catch (IOException ex) {    
  42.             throw new JspTagException("錯誤");    
  43.         }    
  44.         return EVAL_PAGE;    
  45.     }    
  46.     // 樣式    
  47.     protected String style;    
  48.     // 名字    
  49.     protected String name;    
  50.     public String getStyle() {    
  51.         return style;    
  52.     }    
  53.     public void setStyle(String style) {    
  54.         this.style = style;    
  55.     }    
  56.     public String getName() {    
  57.         return name;    
  58.     }    
  59.     public void setName(String name) {    
  60.         this.name = name;    
  61.     }       
  62.     /**   
  63.     doStartTag()方法是遇到標(biāo)簽開始時(shí)會呼叫的方法,其合法的返回值是EVAL_BODY_INCLUDE與SKIP_BODY,前者表示將顯示標(biāo)簽間的文字,后者表示不顯示標(biāo)簽間的文字   
  64.     doEndTag()方法是在遇到標(biāo)簽結(jié)束時(shí)呼叫的方法,其合法的返回值是EVAL_PAGE與SKIP_PAGE,前者表示處理完標(biāo)簽后繼續(xù)執(zhí)行以下的JSP網(wǎng)頁,后者是表示不處理接下來的JSP網(wǎng)頁   
  65.     doAfterBody(),這個方法是在顯示完標(biāo)簽間文字之后呼叫的,其返回值有EVAL_BODY_AGAIN與SKIP_BODY,前者會再顯示一次標(biāo)簽間的文字,后者則繼續(xù)執(zhí)行標(biāo)簽處理的下一步   
  66.     EVAL_BODY_INCLUDE:把Body讀入存在的輸出流中,doStartTag()函數(shù)可用   
  67.     EVAL_PAGE:繼續(xù)處理頁面,doEndTag()函數(shù)可用   
  68.     SKIP_BODY:忽略對Body的處理,doStartTag()和doAfterBody()函數(shù)可用   
  69.     SKIP_PAGE:忽略對余下頁面的處理,doEndTag()函數(shù)可用   
  70.     EVAL_BODY_BUFFERED:申請緩沖區(qū),由setBodyContent()函數(shù)得到的BodyContent對象來處理tag的body,如果類實(shí)現(xiàn)了BodyTag,那么doStartTag()可用,否則非法   
  71.     EVAL_BODY_AGAIN:請求繼續(xù)處理body,返回自doAfterBody(),這個返回值在你制作循環(huán)tag的時(shí)候是很有用的     
  72.     預(yù)定的處理順序是:doStartTag()返回SKIP_BODY,doAfterBodyTag()返回SKIP_BODY,doEndTag()返回EVAL_PAGE   
  73.     如果繼承了TagSupport之后,如果沒有改寫任何的方法,標(biāo)簽處理的執(zhí)行順序是:doStartTag() ->不顯示文字 ->doEndTag()->執(zhí)行接下來的網(wǎng)頁    
  74.     如果您改寫了doStartTag(),則必須指定返回值,   
  75.     如果指定了EVAL_BODY_INCLUDE,則執(zhí)行順序是:doStartTag()->顯示文字->doAfterBodyTag()->doEndTag()->執(zhí)行下面的網(wǎng)頁   
  76.      */    
  77. }   

關(guān)于返回參數(shù),返回具體數(shù)字也可以,不用過于糾結(jié)

然后是下拉內(nèi)容實(shí)現(xiàn)類

  1. package com;    
  2. import java.io.IOException;    
  3. import javax.servlet.jsp.JspException;    
  4. import javax.servlet.jsp.JspTagException;    
  5. import javax.servlet.jsp.tagext.BodyTagSupport;    
  6. @SuppressWarnings("serial")    
  7. public class OptionsTag extends BodyTagSupport {    
  8.     @Override    
  9.     public int doStartTag() throws JspException {    
  10.         return EVAL_BODY_INCLUDE;    
  11.     }    
  12.     @Override    
  13.     public int doEndTag() throws JspException {    
  14.         try {    
  15.             StringBuffer results = new StringBuffer("");    
  16.             if ("SEX".equals(collection)) {    
  17.                 results.append("<option value=\"0\"  selected=\"selected\">請選擇</option>");    
  18.                 results.append("<option value=\"1\">男</option>");    
  19.                 results.append("<option value=\"2\">女</option>");    
  20.             }    
  21.             pageContext.getOut().write(results.toString());    
  22.         } catch (IOException ex) {    
  23.             throw new JspTagException("錯誤");    
  24.         }    
  25.         return EVAL_PAGE;    
  26.     }    
  27.     // collection只是傳遞一個標(biāo)識,具體下拉值內(nèi)容是從數(shù)據(jù)庫取還是從請求中得到為不同具體實(shí)現(xiàn)    
  28.     protected String collection;    
  29.     public String getCollection() {    
  30.         return collection;    
  31.     }    
  32.     public void setCollection(String collection) {    
  33.         this.collection = collection;    
  34.     }    
  35. }   

具體你的字典數(shù)據(jù)從數(shù)據(jù)庫中如何存儲如何查詢,可以自定義實(shí)現(xiàn)

顯示的標(biāo)簽實(shí)現(xiàn),為了將來可以在頁面取到標(biāo)簽內(nèi)容值,我們定義隱藏域來保存屬性值,然后在顯示顯示內(nèi)容

  1. package com;    
  2. import java.io.IOException;    
  3. import javax.servlet.jsp.JspException;    
  4. import javax.servlet.jsp.JspTagException;    
  5. import javax.servlet.jsp.tagext.BodyTagSupport;    
  6. @SuppressWarnings("serial")    
  7. public class SelectDisplay extends BodyTagSupport {    
  8.     @Override    
  9.     public int doStartTag() throws JspException {    
  10.         try {    
  11.             StringBuffer results = new StringBuffer("");    
  12.             pageContext.getOut().write(results.toString());    
  13.         } catch (IOException ex) {    
  14.             throw new JspTagException("錯誤");    
  15.         }    
  16.         return EVAL_BODY_INCLUDE;    
  17.     }    
  18.     @Override    
  19.     public int doEndTag() throws JspException {    
  20.         try {    
  21.             StringBuffer results = new StringBuffer("");    
  22.             if ("SEX".equals(collection)) {    
  23.                 results.append("<span>");    
  24.                 results.append("<input type=\"");    
  25.                 results.append("hidden\" name=\"");    
  26.                 results.append(getName());    
  27.                 results.append("\"");    
  28.                 results.append(" value=\"");    
  29.                 results.append(getValue());    
  30.                 results.append("\">");                   
  31.                 if ("1".equals(getValue())) {    
  32.                     results.append("男");    
  33.                 } else if ("2".equals(getValue())) {    
  34.                     results.append("女");    
  35.                 } else {    
  36.                     results.append("請選擇");    
  37.                 }    
  38.                 results.append("</span>");    
  39.             }    
  40.             pageContext.getOut().write(results.toString());    
  41.         } catch (IOException ex) {    
  42.             throw new JspTagException("錯誤");    
  43.         }    
  44.         return EVAL_PAGE;    
  45.     }    
  46.     // collection只是傳遞一個標(biāo)識,具體下拉值內(nèi)容是從數(shù)據(jù)庫取還是從請求中得到為不同具體實(shí)現(xiàn)    
  47.     protected String collection;    
  48.     // 傳遞的值    
  49.     protected String value;    
  50.     // 該屬性的名稱    
  51.     protected String name;    
  52.     public String getCollection() {    
  53.         return collection;    
  54.     }    
  55.     public void setCollection(String collection) {    
  56.         this.collection = collection;    
  57.     }    
  58.     public String getName() {    
  59.         return name;    
  60.     }    
  61.     public void setName(String name) {    
  62.         this.name = name;    
  63.     }    
  64.     public String getValue() {    
  65.         return value;    
  66.     }    
  67.     public void setValue(String value) {    
  68.         this.value = value;    
  69.     }    
  70. }   

5、JSP中引用,直接在index.jsp中引用

需要引入相應(yīng)的標(biāo)簽內(nèi)容,引入的方式在JSP頭部引用

標(biāo)簽的屬性可以設(shè)置也可以不設(shè)置,標(biāo)簽的使用和HTML標(biāo)簽的使用是一樣的,定義屬性即可

  1. <%@ page language="java" pageEncoding="UTF-8"%>    
  2. <%@ taglib uri="/tld/web-html" prefix="html"%>    
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">    
  4. <html>    
  5.     <head>    
  6.         <title>JSP 自定義標(biāo)簽的實(shí)現(xiàn)</title>    
  7.     </head>    
  8.     <body>    
  9.         請選擇:    
  10.         <html:select name="sex" style="width:100px">    
  11.             <html:options collection="SEX"></html:options>    
  12.         </html:select>    
  13.         顯示性別:    
  14.         <html:selectDisplay collection="SEX" value="1" name="sex"></html:selectDisplay>         
  15.     </body>    
  16. </html>  

6、后話

訪問項(xiàng)目就可以看到效果,附件是這個項(xiàng)目的源代碼,導(dǎo)入到MyEclipse中可以查看

如果想要自己設(shè)計(jì)一個大的標(biāo)簽庫,可以設(shè)計(jì)一個父類,包含一些主要的屬性,例如name,id,style等屬性。然后在子類中定義自己的特有屬性

這個實(shí)現(xiàn)只是學(xué)習(xí)一下JSP自定義標(biāo)簽使用的HelloWorld程序,然后包含了字典應(yīng)用的實(shí)際例子,程序簡單,僅供參考。

源代碼:jsptag.rar

原文鏈接:http://www.blogjava.net/todayx-org/archive/2012/01/30/369041.html

【編輯推薦】

  1. JSP自定義標(biāo)簽開發(fā)入門
  2. JSP速度優(yōu)化七種方法
  3. 詳細(xì)介紹Jsp中的Cookies
  4. 分享JSP學(xué)習(xí)經(jīng)驗(yàn)總結(jié)
  5. 詳細(xì)介紹jsp中action的功能
責(zé)任編輯:林師授 來源: todayx.org的博客
相關(guān)推薦

2009-07-06 16:20:50

JSP自定義標(biāo)簽

2009-07-06 16:59:26

JSP自定義標(biāo)簽

2011-12-26 10:11:08

JSP

2009-07-02 15:31:49

JSP標(biāo)簽

2009-06-30 10:40:25

JSP自定義標(biāo)簽

2024-08-26 11:13:26

字典entry自定義

2015-07-22 17:21:34

Oracle數(shù)據(jù)字典

2009-06-30 17:02:31

J2EE實(shí)現(xiàn)分頁

2023-03-06 07:48:01

數(shù)據(jù)字典Spring

2023-09-12 13:59:41

OpenAI數(shù)據(jù)集

2023-10-09 07:37:01

2009-09-07 22:00:15

LINQ自定義

2022-05-18 07:44:13

自定義菜單前端

2010-09-09 11:55:36

SQL函數(shù)標(biāo)簽

2010-04-28 17:49:41

Oracle數(shù)據(jù)字典

2010-04-09 10:13:13

Oracle數(shù)據(jù)字典

2010-03-31 16:38:02

Oracle數(shù)據(jù)字典

2023-05-03 09:18:24

RedisDB數(shù)據(jù)字典Dict

2010-04-22 09:36:56

Oracle數(shù)據(jù)字典

2022-10-10 08:01:08

MySQL字典表
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

国产夫妻在线播放| 国产男男gay体育生网站| 少妇一区二区视频| 欧美视频一区二区三区四区| 经典三级在线视频| 色屁屁草草影院ccyycom| 国产亚洲综合精品| 中文字幕日韩精品有码视频| 伊人久久久久久久久| 亚洲欧洲美洲av| 日韩理论片在线| 狠狠色综合色区| 怡春院在线视频| 在线成人国产| 精品国内自产拍在线观看| 97免费公开视频| 欧美黑人疯狂性受xxxxx野外| 综合久久国产九一剧情麻豆| 久久免费一区| 精品国自产在线观看| 久久伊人亚洲| 欧美—级高清免费播放| 国产又粗又硬视频| 里番精品3d一二三区| 在线播放中文字幕一区| 日韩a在线播放| 成a人片在线观看| 欧美高清在线一区| 精品视频免费观看| 国产黄色av网站| 麻豆国产精品视频| 性欧美在线看片a免费观看| 69夜色精品国产69乱| 猛男gaygay欧美视频| 精品国产制服丝袜高跟| 黄色片一级视频| av资源中文在线天堂| 亚洲欧美激情插| 午夜久久资源| 国产大学生校花援交在线播放| 懂色av一区二区在线播放| 成人免费高清完整版在线观看| 亚洲欧美一二三区| 亚洲影视在线| 久久久天堂国产精品女人| 91插插插插插插| 五月精品视频| 久久精品亚洲一区| 亚洲最大的黄色网址| 99久久激情| 中文字幕日韩电影| 国产又黄又粗又猛又爽的| 国产免费av一区二区三区| 亚洲欧美国产精品久久久久久久| 伊人久久一区二区三区| www.豆豆成人网.com| 欧美变态tickle挠乳网站| 中文字幕55页| 日韩三级不卡| 日韩精品一区二| 久久久国产精品久久久| 一区二区三区视频播放| 欧美一区二区视频在线观看2022| 国产成人美女视频| 精品一区二区三区中文字幕在线 | 国产无遮挡又黄又爽又色| 好看不卡的中文字幕| 欧美激情国产高清| 国产一级淫片免费| 国产欧美日本| 欧美一区第一页| 日韩xxx视频| 精品系列免费在线观看| 国产自摸综合网| 国产视频第一页| 成人免费看黄yyy456| 精品午夜一区二区| 精华区一区二区三区| 国产日产亚洲精品系列| 一区二区三区四区欧美| 在线视频中文字幕第一页| 亚洲一区成人在线| 美女日批免费视频| 日本精品网站| 欧美一区二区三区免费在线看| 潘金莲一级淫片aaaaa| 国产一区二区三区不卡av| 日韩av一区二区在线| 国产美女免费网站| 99久精品视频在线观看视频| 欧美激情一区二区三区成人| 免费看日韩毛片| 奇米色777欧美一区二区| 亚洲xxxxx性| av女名字大全列表| 国产精品久久久久久久久免费樱桃| 最新黄色av网站| 国产自产自拍视频在线观看| 欧美网站一区二区| 台湾佬美性中文| 中文字幕中文字幕精品| 久久精品人人做人人爽| 日韩成人免费在线视频| 捆绑紧缚一区二区三区视频| 国产精品v欧美精品∨日韩| 国产三级在线| 亚洲国产成人av| 亚洲一级免费在线观看| 欧美激情99| 久久精品91久久香蕉加勒比| 青青操免费在线视频| 精品一区二区三区的国产在线播放| 国产一级二级三级精品| 欧美天天影院| 日本高清免费不卡视频| 精品人妻在线视频| 婷婷激情图片久久| 国产成人精品在线观看| 隣の若妻さん波多野结衣| 国产精品天干天干在线综合| 一区二区传媒有限公司| 久久中文字幕一区二区| 色av中文字幕一区| www毛片com| 成人av手机在线观看| 2021狠狠干| 成人av色网站| 亚洲人成免费电影| 国产一卡二卡在线| 国产成人精品免费视频网站| 亚洲在线色站| 成人国产激情在线| 亚洲欧美综合区自拍另类| 一级aaa毛片| 国v精品久久久网| 日本三日本三级少妇三级66| 成人黄色毛片| 一本色道久久综合狠狠躁篇怎么玩 | xxxx日韩| 久99久在线视频| 国产免费一区二区三区免费视频| 国产精品视频麻豆| 在线视频日韩一区| 一个色免费成人影院| 欧美最顶级的aⅴ艳星| 五月婷婷深深爱| 亚洲.国产.中文慕字在线| 蜜桃色一区二区三区| 欧美日韩ab| 国产98在线|日韩| 青青草视频在线免费直播| 欧美一二区视频| 欧产日产国产v| 国产成人av电影在线播放| 欧美交换配乱吟粗大25p| 精品国产乱码一区二区三区| 美日韩精品免费视频| 99久久久久成人国产免费| 亚洲免费观看高清完整版在线观看熊 | 日本色护士高潮视频在线观看| 欧美一区二区网站| 久久久久久久福利| 99视频精品免费视频| 国产精品网站免费| 亚洲另类春色校园小说| 日本伊人精品一区二区三区介绍| 毛片网站在线观看| 91久久精品国产91性色tv| 大胸美女被爆操| 精品亚洲成a人| 国产精品videossex国产高清| 超碰97成人| 日本免费久久高清视频| 98在线视频| 日韩视频123| av大片免费观看| 国产精品婷婷午夜在线观看| 亚洲综合在线一区二区| 在线精品一区二区| 青娱乐国产91| 婷婷久久综合九色综合99蜜桃| 久久av中文字幕| 日本韩国免费观看| 色94色欧美sute亚洲线路一久| 欧美亚洲色综久久精品国产| 国产精品一区二区在线观看网站| 久久久久免费看黄a片app| 国产一区二区三区91| 91亚洲精品久久久| 韩国成人二区| 久久精品在线视频| 少妇av在线播放| 91成人网在线| 午夜免费激情视频| 久久日一线二线三线suv| 五月天激情播播| 一区二区动漫| 亚洲一区三区| 人人精品视频| 7777奇米亚洲综合久久| xxxxxx欧美| 色综合久久悠悠| 超碰国产在线观看| 精品88久久久久88久久久| 免费一级a毛片| 亚洲一区二区三区免费视频| 中文字幕av久久爽一区| 不卡电影一区二区三区| 中文字幕66页| 免费久久99精品国产自在现线| 懂色av粉嫩av蜜臀av| 自拍自偷一区二区三区| 成人18视频| 欧美一区=区三区| 日本a级片电影一区二区| 污污的网站在线看| 色婷婷**av毛片一区| 神马午夜电影一区二区三区在线观看 | 国产suv精品一区二区三区| 五月婷婷激情久久| 欧美亚洲一区二区三区| 日本xxxxxxxxxx75| 午夜国产欧美理论在线播放 | 风韵丰满熟妇啪啪区老熟熟女| 青娱乐精品在线视频| 久久9精品区-无套内射无码| 国产精品videosex极品| 中国成人亚色综合网站| 日韩专区精品| 日韩精品极品视频在线观看免费| 国产精品17p| 99视频免费观看| 免费欧美网站| 成人在线中文字幕| 亚洲精品第一| 成人免费看吃奶视频网站| 91国拍精品国产粉嫩亚洲一区| 日本成人在线视频网址| 国产理论在线| 7777精品久久久久久| 9999精品成人免费毛片在线看| 九九热精品视频在线播放| 麻豆传媒在线观看| 久久精品最新地址| 欧美性猛交xxx乱大交3蜜桃| www.xxxx精品| 成人在线免费看黄| 久久久精品国产亚洲| 日韩在线免费电影| www.日本久久久久com.| 蜜桃视频在线观看www社区| 日韩中文字幕av| av电影在线观看| 久久精品99久久香蕉国产色戒| 91在线品视觉盛宴免费| 日韩最新免费不卡| 超碰caoporn久久| 欧美日韩国产va另类| 欧美性爽视频| 欧美一区二区.| free欧美| 国产剧情日韩欧美| 国产999精品在线观看| 亚洲综合大片69999| 成人h动漫免费观看网站| 国产精品一区二区三区免费观看| 久久婷婷国产| 欧美一区视久久| 日韩在线观看| 欧美交换配乱吟粗大25p| 99视频精品| 一区二区在线播放视频| 久久99久久99| 国产精品果冻传媒| 久久久久国产精品人| 女教师淫辱の教室蜜臀av软件| 亚洲乱码国产乱码精品精98午夜| 久久国产露脸精品国产| 欧美午夜精品伦理| 亚洲一区二区三区网站| 日韩精品一区在线| 日本福利片在线| 久久综合电影一区| 九色porny丨国产首页在线| 精品人妻午夜一区二区三区四区| 欧美日韩免费观看一区二区三区| 国产又粗又猛又黄又爽无遮挡| 日韩免费视频线观看| 天堂中文在线8| 亚洲乱码国产乱码精品精| 一广人看www在线观看免费视频| 日韩亚洲国产中文字幕| 黄视频在线免费看| 国产精品a久久久久久| 国产高清日韩| 久久久亚洲综合网站| 国产精品久久久久久麻豆一区软件| 亚洲国产精品无码观看久久| 日韩高清不卡一区| 欧美做受高潮中文字幕| 中文文精品字幕一区二区| 国产无遮无挡120秒| 欧美日本视频在线| 视频三区在线观看| 中国日韩欧美久久久久久久久| 欧美性猛片xxxxx免费中国 | 美女主播视频一区| 亚洲精品成人无限看| 人妻有码中文字幕| 国产成人av一区二区三区在线| 精品人妻无码一区二区三区换脸| 一区二区久久久久久| 国产情侣免费视频| 亚洲国产一区二区三区在线观看| 欧美日韩在线资源| 国产成人av在线播放| 免费观看成人www动漫视频| 日本丰满少妇黄大片在线观看| 久久精品国产清高在天天线| 亚洲乱妇老熟女爽到高潮的片| 国产精品久久毛片av大全日韩| 国产九色在线播放九色| 精品久久久久香蕉网| xvideos国产在线视频| 国产精品亚洲аv天堂网| 亚洲成aⅴ人片久久青草影院| 免费在线看黄色片| 国产剧情av麻豆香蕉精品| 懂色av蜜臀av粉嫩av永久| 色国产精品一区在线观看| 五月婷婷激情在线| 国语自产偷拍精品视频偷| 亚洲成av人片在线观看www| 欧美亚洲视频一区| 开心九九激情九九欧美日韩精美视频电影 | 欧美电视剧在线看免费| 久操视频在线播放| 国产在线观看不卡| 91蜜臀精品国产自偷在线| 精品999在线| 欧美国产精品中文字幕| 久草视频在线免费| 亚洲一区二区国产| 亚洲成av在线| 欧美一区国产一区| 日本亚洲欧美天堂免费| 日本欧美一区二区三区不卡视频| 一本大道综合伊人精品热热| 欧美高清成人| 国产成人亚洲综合青青| 精品国产一区二区三区四区 | 久久久久久久久99| 欧美大黄免费观看| 黄色的视频在线观看| 国产伦精品一区二区三| 99精品国产在热久久下载| 搡老熟女老女人一区二区| 疯狂欧美牲乱大交777| 青青草免费观看免费视频在线| 欧美有码在线观看| 欧洲grand老妇人| 一级黄色特级片| 专区另类欧美日韩| 亚洲h视频在线观看| 国模精品一区二区三区色天香| 久久综合五月婷婷| 欧美xxxxx在线视频| 国产欧美日韩一区二区三区在线观看| www.av88| 久久影院资源网| 成人免费直播在线| 不卡影院一区二区| 综合网在线视频| 后入内射欧美99二区视频| 456国产精品| 成人在线免费观看网站| 亚洲成人av免费观看| 精品久久久国产| h视频网站在线观看| 亚洲xxxx在线| 性欧美长视频| 搜索黄色一级片| 亚洲国内精品在线| yiren22亚洲综合| 欧美日韩福利在线| 国产三级一区二区| 亚洲AV午夜精品| 国产成人精品网站| 午夜日韩av| 天堂久久精品忘忧草| 日韩精品中文字幕一区二区三区| 亚洲少妇视频| 三年中国中文在线观看免费播放| hitomi一区二区三区精品| 少妇又紧又色又爽又刺激视频| 欧美黑人性视频| 色呦哟—国产精品| 亚洲国产果冻传媒av在线观看| 欧美日韩视频在线第一区| av资源在线播放|