日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用PrimeFaces开发数据导出实用程序

發布時間:2023/12/3 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用PrimeFaces开发数据导出实用程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我的日常工作涉及大量使用數據。 我們使用關系數據庫來存儲所有內容,因為我們依賴于企業級的數據管理。 有時,具有將數據提取為簡單格式(例如電子表格)的功能很有用,以便我們可以按需進行操作。 這篇文章概述了我使用PrimeFaces 5.0生成有效且易于使用的基于JSF的數據導出實用程序所采取的步驟。 導出實用程序將生成一個電子表格,其中包括列標題。 用戶可以選擇要導出的數據庫字段以及應該以什么順序導出。

我們要確保我們擁有一個直觀的干凈用戶界面。 因此,我選擇不在屏幕上顯示任何數據。 而是,用戶界面包含一個PrimeFaces PickList組件,該組件列出了可供選擇的不同數據字段,以及一個用于生成導出的按鈕。 首先,設置數據庫基礎結構以使此導出實用程序成為可能。

對于這篇文章,我增強了AcmePools應用程序,該應用程序是通過我在OTN上發布的名為PrimeFaces in the Enterprise的文章開發的 。 導出實用程序允許將客戶數據導出到電子表格中。 客戶數據包含在NetBeans安裝在Apache Derby內的示例數據庫中,或者您可以將SQL腳本用于此文章。 在創建此導出實用程序之前,請在您的環境中下載或創建AcmePools項目。

數據導出實用程序分為兩部分,第一部分是PrimeFaces PickList組件,供用戶選擇要導出的字段,第二部分是導出按鈕,它將選擇的字段內容提取到電子表格中。 最終結果將類似于圖1所示的用戶界面。

圖1:數據導出實用程序

開發PickList組件

首先,創建數據基礎結構以支持PickList組件。 它由一個單獨的數據庫表組成,用于保存您要導出的實體數據的列名和標簽,以及一個可選的數據庫序列,用于填充該表的主鍵。 在這種情況下,數據庫表名為COLUMN_MODEL,我們用與CUSTOMER數據庫表的數據庫列名稱相對應的實體字段名稱填充該表。

-- Add support for data export create table column_model( id int primary key, column_name varchar(30), column_label varchar(150)); -- Optional sequence for primary key generation create sequence column_model_s start with 1 increment by 1; -- Load with field (database column) names insert into column_model values( 1, 'addressline1', 'Address Line 1');insert into column_model values( 2, 'addressline2', 'Address Line 2');insert into column_model values( 3, 'city', 'City');insert into column_model values( 4, 'creditLimit', 'Credit Limit');insert into column_model values( 5, 'customerId', 'Customer Id');insert into column_model values( 6, 'discountCode', 'Discount Code');insert into column_model values( 7, 'email', 'Email');insert into column_model values( 8, 'fax', 'Fax');insert into column_model values( 9, 'name', 'Name');insert into column_model values( 10, 'phone', 'Phone');insert into column_model values( 11, 'state', 'State');insert into column_model values( 12, 'zip', 'Zip');

接下來,創建一個實體類,該實體類可用于從組件內部訪問列數據。 如果使用NetBeans等IDE,則可以通過向導輕松完成此操作。 如果使用NetBeans,請右鍵單擊com.acme.acmepools.entity包,然后選擇“新建”->“數據庫中的實體類”,然后為我們的示例數據庫選擇數據源。 當表列表填充時,選擇COLUMN_MODEL表,如圖2所示。最后,選擇“下一步”和“完成”以創建實體類。

圖2.數據庫中的NetBeans IDE新實體類


完成后,名為ColumnModel的實體類應如下所示:

package com.acme.acmepools.entity;import java.io.Serializable; import java.math.BigDecimal; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement;/**** @author Juneau*/ @Entity @Table(name = "COLUMN_MODEL") @XmlRootElement @NamedQueries({@NamedQuery(name = "ColumnModel.findAll", query = "SELECT c FROM ColumnModel c"),@NamedQuery(name = "ColumnModel.findById", query = "SELECT c FROM ColumnModel c WHERE c.id = :id"),@NamedQuery(name = "ColumnModel.findByColumnName", query = "SELECT c FROM ColumnModel c WHERE c.columnName = :columnName"),@NamedQuery(name = "ColumnModel.findByColumnLabel", query = "SELECT c FROM ColumnModel c WHERE c.columnLabel = :columnLabel")}) public class ColumnModel implements Serializable {private static final long serialVersionUID = 1L;@Id@Basic(optional = false)@NotNull@Column(name = "ID")private BigDecimal id;@Size(max = 30)@Column(name = "COLUMN_NAME")private String columnName;@Size(max = 150)@Column(name = "COLUMN_LABEL")private String columnLabel;public ColumnModel() {}public ColumnModel(BigDecimal id) {this.id = id;}public BigDecimal getId() {return id;}public void setId(BigDecimal id) {this.id = id;}public String getColumnName() {return columnName;}public void setColumnName(String columnName) {this.columnName = columnName;}public String getColumnLabel() {return columnLabel;}public void setColumnLabel(String columnLabel) {this.columnLabel = columnLabel;}@Overridepublic int hashCode() {int hash = 0;hash += (id != null ? id.hashCode() : 0);return hash;}@Overridepublic boolean equals(Object object) {// TODO: Warning - this method won't work in the case the id fields are not setif (!(object instanceof ColumnModel)) {return false;}ColumnModel other = (ColumnModel) object;if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {return false;}return true;}@Overridepublic String toString() {return "com.acme.acmepools.entity.ColumnModel[ id=" + id + " ]";}}

接下來,為新生成的實體類創建EJB會話bean,以便組件可以查詢列數據。 您也可以根據需要使用IDE。 如果使用NetBeans,請右鍵單擊com.acme.acmepools.session包,然后選擇“新建”->“實體類的會話Bean”。 對話框打開后,從左側列表中選擇實體類“ com.acme.acmepools.entity.ColumnModel”,然后單擊“完成”(圖3)。

圖3:用于實體類的NetBeans IDE會話Bean對話框


創建會話bean之后,添加一個名為findId()的方法,該方法可用于根據指定的列名返回列ID值。 ColumnModelFacade的完整資源應如下所示:

package com.acme.acmepools.session;import com.acme.acmepools.entity.ColumnModel; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext;/**** @author Juneau*/ @Stateless public class ColumnModelFacade extends AbstractFacade {@PersistenceContext(unitName = "com.acme_AcmePools_war_AcmePools-1.0-SNAPSHOTPU")private EntityManager em;@Overrideprotected EntityManager getEntityManager() {return em;}public ColumnModelFacade() {super(ColumnModel.class);}public ColumnModel findId(String columnName){return (ColumnModel) em.createQuery("select object(o) from ColumnModel as o " +"where o.columnName = :columnName").setParameter("columnName", columnName).getSingleResult();}}

接下來,創建一些幫助程序類,這些類將用于在PickList組件中加載和管理數據。 第一個類名為ColumnBean,它用于存儲實體數據,然后將其傳遞給PickList以供使用。 ColumnBean的代碼是一個簡單的POJO:

package com.acme.acmepools.bean;import java.math.BigDecimal;/**** @author juneau*/ public class ColumnBean {private BigDecimal id;private String columnName;private String columnLabel;public ColumnBean(BigDecimal id, String columnName, String columnLabel){this.id = id;this.columnName = columnName;this.columnLabel = columnLabel;}/*** @return the id*/public BigDecimal getId() {return id;}/*** @param id the id to set*/public void setId(BigDecimal id) {this.id = id;}/*** @return the columnName*/public String getColumnName() {return columnName;}/*** @param columnName the columnName to set*/public void setColumnName(String columnName) {this.columnName = columnName;}/*** @return the columnLabel*/public String getColumnLabel() {return columnLabel;}/*** @param columnLabel the columnLabel to set*/public void setColumnLabel(String columnLabel) {this.columnLabel = columnLabel;}}

PickList組件需要使用PrimeFaces DualListModel來訪問和更新數據。 因此,我們必須實現一個類,該類可用于將實體數據強制到ColumnBean POJO中,然后將其存儲到DualListModel中,以便PickList組件可以利用它。 在下面的名為PickListBean的類中,構造函數接受作為實體數據的List <ColumnModel>作為參數,執行強制轉換,然后將其存儲到DualListModel <ColumnBean>集合中,以供組件使用。

package com.acme.acmepools.bean;/**** @author juneau*/import java.util.ArrayList; import java.util.List; import com.acme.acmepools.entity.ColumnModel;import org.primefaces.model.DualListModel;public class PickListBean {private DualListModel<ColumnBean> columns;private List<ColumnBean> source = null;private List<ColumnBean> target = null;public PickListBean(List<ColumnModel> columnModelList) {//Columns source = new ArrayList<ColumnBean>();target = new ArrayList<ColumnBean>();for(ColumnModel column:columnModelList){ColumnBean bean = new ColumnBean(column.getId(), column.getColumnName(), column.getColumnLabel());source.add(bean);}columns = new DualListModel<ColumnBean>(source, target);}public DualListModel<ColumnBean> getColumns() {return columns;}public void setColumns(DualListModel<ColumnBean> columns) {this.columns = columns;}}

最后,我們需要創建一個控制器類來訪問所有這些數據。 為此,請在com.acme.acmepools.jsf包中創建一個名為ColumnModelController的類,并通過使用@Named和@SessionScoped對其進行注釋,使其成為CDI托管bean。 使該類實現Serializable。 初始控制器類應如下所示(我們稍后將對其進行更新以包括促進導出的方法):

@Named @SessionScoped public class ColumnModelController implements Serializable {@EJBColumnModelFacade ejbFacade;private PickListBean pickListBean;private List<ColumnModel> columns;public DualListModel<ColumnBean> getColumns() {pickListBean = new PickListBean(ejbFacade.findAll());return pickListBean.getColumns();}public void setColumns(DualListModel<ColumnBean> columns) {pickListBean.setColumns(columns);} }

如您所見,getColumns()方法查詢ColumnModel實體,該實體通過PickListBean構造函數填充DualListModel <ColumnBean>。

這將處理數據庫基礎結構和業務邏輯……現在讓我們看一下用于PickList的PrimeFaces組件。 以下摘錄來自WebPages / poolCustomer / CustomerExport.xhtml視圖,其中包含PickList組件的標記:

<p:panel header="Choose Columns for Export"><p:picklist effect="bounce" itemlabel="#{column.columnLabel}" itemvalue="#{column.columnName}" showsourcecontrols="true" showtargetcontrols="true" value="#{columnModelController.columns}" var="column"><f:facet name="sourceCaption">Columns</f:facet><f:facet name="targetCaption">Selected</f:facet></p:picklist></p:panel>

如您所見,PickList使用columnModelController.columns作為數據,然后使用columnLabel字段顯示要導出的實體字段的名稱。 源和目標PickList窗口的標題可通過構面進行自定義。 添加導出功能現在,我們已經開發了功能選擇列表,我們需要對選定的數據進行一些處理。 在本練習中,我們將使用PrimeFaces DataExporter組件提取數據并將其存儲到Excel電子表格中。 實際上,我們需要將DataTable合并到視圖中以首先顯示數據,然后可以使用DataExporter組件導出駐留在表中的數據。 為了構造將用于顯示數據的DataTable,我們需要向ColumnModelController類添加一些方法。 這些方法將使我們能夠動態地處理DataTable,以便我們可以根據在PickList中選擇的列構造列。 實際上,DataTable將查詢所有Customer數據,然后僅顯示在PickList中選擇的那些數據列。 (我們可以通過添加過濾器來修改此查詢,但這超出了本文的范圍)。 要向表中加載數據,我們只需調用com.acme.acmepools.jsf.CustomerController getItems()方法即可返回所有數據……public List <Customer> getItems(){if(items == null){items = getFacade()。findAll(); } 退換貨品; }…現在,我們將必要的方法添加到ColumnModelController,以便我們可以動態構造表。 首先,添加一個單擊“導出”按鈕將被調用的方法。 此方法將負責構建當前選擇的列列表:

public void preProcess(Object document) {System.out.println("starting preprocess");updateColumns();}

接下來,讓我們看一下由preProcess()方法調用的updateColumns()的代碼:

/*** Called as preprocessor to export (after clicking Excel icon) to capture* the table component and call upon createDynamicColumns()*/public void updateColumns() {//reset table stateUIComponent table = FacesContext.getCurrentInstance().getViewRoot().findComponent(":customerExportForm:customerTable");table.setValueExpression("sortBy", null);//update columnscreateDynamicColumns();}

updateColumns()方法將UIComponent綁定到JSF視圖中的表。 然后,它有能力提供排序(如果選擇)。 接下來,讓我們看一下被調用的createDynamicColumns()方法。

private void createDynamicColumns() {String[] columnKeys = this.getIncludedColumnsByName().split(",");columns = new ArrayList<>();for (String columnKey : columnKeys) {String key = columnKey.trim();columns.add(new ColumnModel(getColumnLabel(key), key));}}

createDynamicColumns()方法可以完成一些工作。 首先,它從PickList中捕獲所有選定的列,并將它們存儲到名為columnKeys的String []中。 為此,我們使用名為getIncludedColumnsByName()的幫助程序方法,并以逗號分隔結果。 此方法的源如下,它基本上從PickListBean抓取當前選擇的列,并將每個列附加到String上,然后將其返回給調用方。

public String getIncludedColumnsByName() {String tempIncludedColString = null;System.out.println("Number of included columns:" + pickListBean.getColumns().getTarget().size());List localSource = pickListBean.getColumns().getTarget();for (int x = 0; x <= localSource.size() - 1; x++) {String tempModel = (String) localSource.get(x);if (tempIncludedColString == null) {tempIncludedColString = tempModel;} else {tempIncludedColString = tempIncludedColString + "," + tempModel;}}return tempIncludedColString;}

接下來,createDynamicColumns()方法然后使用循環解析String []中的每個選定列,并將它們添加到columnList,后者將用于使用適當的列構造DataTable。

現在,讓我們看一下用于構造DataExport實用程序的標記:

<p:datatable id="customerTable" rendered="false" value="#{customerController.items}" var="item" widgetvar="customerTable"> <p:columns columnindexvar="colIndex" value="#{columnModelController.dynamicColumns}" var="column"><f:facet name="header"><h:outputtext value="#{column.header}"></h:outputtext></f:facet><h:outputtext value="#{item[column.property]}"></h:outputtext></p:columns></p:datatable><hr /> <h:outputtext value="Type of file to export: "><h:commandlink><p:graphicimage value="/faces/resources/images/excel.png"><p:dataexporter filename="customers" id="propertyXlsExport" preprocessor="#{columnModelController.preProcess}" target="customerTable" type="xls"></p:dataexporter></p:graphicimage></h:commandlink> </h:outputtext>

如您所見,DataTable設置為不呈現,因為我們確實不希望顯示它。 相反,我們希望使用DataExporter組件導出其內容。 為了動態構造DataTable,這些列將調用columnModelController.dynamicColumns方法以返回動態列列表。 該方法如下所示:

public List<ColumnModel> getDynamicColumns() {return columns;}

在DataExporter實用程序組件中,將columnModelController.preProcess方法分配給預處理器屬性以啟動動態列列表。 目標設置為customerTable小部件,該部件是我們根據所選列動態構建的DataTable。 為了將其導出到xls電子表格,必須在項目的Maven POM中添加org.apache.poi依賴項,如下所示:

<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.7</version></dependency>

就是這樣…現在您應該擁有使用PrimeFaces組件的功能齊全的數據導出實用程序。 使用以下鏈接可在GitHub上獲得完整的資源。 此代碼已用NetBeans IDE 8.0編寫,并已部署到GlassFish 4.0。 我在該項目中使用了PrimeFaces 5.0。

  • GitHub來源: https : //github.com/juneau001/AcmePools

翻譯自: https://www.javacodegeeks.com/2014/12/developing-a-data-export-utility-with-primefaces.html

總結

以上是生活随笔為你收集整理的使用PrimeFaces开发数据导出实用程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

亚洲免费婷婷 | 韩国av免费 | 色综合久久中文综合久久牛 | 天天操狠狠干 | 在线观看一二三区 | 国产高清在线免费视频 | 日韩xxxbbb | 人人射人人| 在线看一区 | 国产视频亚洲精品 | 欧美一级专区免费大片 | 日本精品午夜 | 天天综合网天天综合色 | 国产一级二级在线播放 | 天天综合狠狠精品 | 国产精品毛片 | 在线免费91 | 91爱爱网址 | 国产成人av综合色 | 欧美日韩91| 麻豆免费看片 | 91视频91自拍 | 久久综合狠狠综合久久综合88 | 天天草av | 激情文学丁香 | 六月丁香激情综合色啪小说 | 九七视频在线 | 国产黄色精品在线 | 国产精品九九久久久久久久 | 久久国产精品一区二区 | 色噜噜在线观看视频 | av超碰在线 | 国产精品久久久免费看 | 久久久久女教师免费一区 | 日韩在线观看一区二区 | 欧美日韩在线网站 | 欧美一级性生活视频 | 五月天久久狠狠 | 国产一区网址 | 国产精品久久久99 | 激情五月五月婷婷 | 久久精品爱爱视频 | 国产九九九九九 | 狠狠狠色丁香婷婷综合久久88 | 西西人体www444| 国产精品99免费看 | 这里只有精彩视频 | 欧美日韩精品在线免费观看 | 国产一区二区视频在线播放 | 精品国产一区二区三区男人吃奶 | 五月在线视频 | 91香蕉嫩草 | 亚洲一级免费观看 | 最新午夜电影 | 日韩精品久久一区二区 | 九九三级毛片 | 麻豆国产电影 | 综合色伊人 | 天天色天天射天天综合网 | 日韩 精品 一区 国产 麻豆 | 久久久久久蜜桃一区二区 | 一本一本久久a久久 | 亚洲欧洲美洲av | 91麻豆国产 | 在线视频 亚洲 | 美女视频黄的免费的 | 亚洲日本在线视频观看 | 97视频资源 | 国产成人久久77777精品 | 91香蕉亚洲精品 | 丁香激情五月 | 日本在线观看中文字幕 | 在线播放 日韩专区 | 深爱激情亚洲 | 久久无码av一区二区三区电影网 | 高清一区二区三区 | 黄色成人影院 | 成人免费毛片aaaaaa片 | 97激情影院 | 99精品视频在线免费观看 | 国产色一区 | 成人在线观看影院 | 亚洲国产精品一区二区尤物区 | 欧美一级在线观看视频 | 国产亚洲精品福利 | 亚洲精品乱码久久久久久久久久 | 蜜臀久久99静品久久久久久 | 国产视频1 | 午夜 在线 | av免费电影在线 | 激情狠狠干| 日韩专区在线播放 | 一区二区精品在线 | 天天艹天天操 | 91精品久久久久 | 婷婷日| 懂色av一区二区三区蜜臀 | 黄色一及电影 | 亚洲精品国产精品国自产在线 | 国产九九九精品视频 | 婷婷丁香激情网 | 揉bbb玩bbb少妇bbb | 国产香蕉视频在线播放 | 日韩免费观看一区二区 | 99超碰在线观看 | 在线免费黄网站 | 人人澡人人澡人人 | 在线视频免费观看 | 久久成人免费视频 | 激情婷婷在线 | 久草在线久草在线2 | 免费黄色网址大全 | 97免费公开视频 | 欧美日韩一区二区三区在线免费观看 | 欧美国产精品久久久久久免费 | 黄视频网站大全 | 久国产在线播放 | 精品久久一 | 国产中文字幕视频在线 | 天天综合网国产 | 久久草草热国产精品直播 | 色综合五月 | 国产九九精品视频 | 激情久久伊人 | av中文在线观看 | 欧美贵妇性狂欢 | 亚洲精品视频网站在线观看 | 日韩国产精品毛片 | 日韩三级视频 | 综合网欧美 | 2022国产精品视频 | 欧美一级日韩免费不卡 | 欧美少妇的秘密 | 丁香久久综合 | 97超碰成人在线 | 亚洲激情综合网 | 日韩欧美一区二区三区在线观看 | 日批在线看 | av日韩av| 中文字幕高清在线播放 | 国产伦精品一区二区三区无广告 | 久草精品视频在线播放 | 日韩欧美不卡 | 亚洲国产一区二区精品专区 | 免费成人在线观看视频 | 国产亚洲精品女人久久久久久 | 日本在线观看一区二区三区 | 久久99精品久久久久久秒播蜜臀 | 亚洲一区二区精品视频 | 在线国产中文 | a视频在线| 97国产视频| 中文字幕av影院 | 99 色| 808电影免费观看三年 | 青青啪 | 午夜精品一区二区三区在线 | 精品国产电影一区 | 欧美日韩一级在线 | 精品黄色在线观看 | 久久精品一区二区三 | 午夜.dj高清免费观看视频 | 国内精品在线一区 | 免费在线观看av网站 | 国产精品xxxx18a99 | 黄色亚洲在线 | 午夜免费福利视频 | 伊人久久五月天 | 久久精品首页 | 免费三及片 | 国产精品女人久久久久久 | 日韩精品久久一区二区 | 久久久久电影网站 | 美女网站久久 | 精品久久久久久综合日本 | va视频在线| 2019精品手机国产品在线 | 国产精品欧美激情在线观看 | 操久| 久草在线看片 | 国产精品乱码久久久久久1区2区 | 99色免费视频 | 热99久久精品| 国产一区高清在线 | 天天操综合网站 | www久久久| 久久伊人精品一区二区三区 | 91九色蝌蚪国产 | 激情综合网在线观看 | 久久99热久久99精品 | av在线观 | 国产精品久久久久久久久久久久午夜 | 亚洲国产精品500在线观看 | 亚洲免费成人 | 成人亚洲综合 | 国产一级电影免费观看 | 久久成人精品电影 | 国产精品粉嫩 | 久久99精品国产 | 日韩有码中文字幕在线 | 亚洲成av人片在线观看 | 国产日韩精品视频 | 一本大道久久精品懂色aⅴ 五月婷社区 | 久草视频免费观 | 91av在| 精品福利在线视频 | 最新国产视频 | 国产va饥渴难耐女保洁员在线观看 | 日日日日日 | 激情综合电影网 | 又黄又爽又色无遮挡免费 | 欧美孕妇与黑人孕交 | 亚洲在线视频观看 | 国产视频一级 | 人人爽人人爽人人爽 | 免费视频99 | 久久专区| 国产va精品免费观看 | 日韩二级毛片 | 日本中文字幕在线 | 欧美日韩免费看 | 日韩激情网| 91视频大全 | 在线看片一区 | 亚洲激情五月 | 免费看短 | 人人干人人干人人干 | 免费在线观看黄网站 | 久久综合九色 | 黄色av免费看 | 日韩特级毛片 | 狠狠狠的干 | 久久久久综合 | 国产成人精品av | 午夜国产一区二区 | 国产精品成人一区二区三区吃奶 | 亚州视频在线 | 伊人天天狠天天添日日拍 | 97视频在线免费观看 | 欧美男女爱爱视频 | av在线一级 | 免费观看久久 | 91麻豆精品国产91久久久使用方法 | 欧美日韩国产精品一区二区亚洲 | 日韩和的一区二在线 | 西西大胆免费视频 | 在线91视频 | 97国产超碰 | 九九热在线视频免费观看 | 午夜精品一区二区三区免费视频 | zzijzzij亚洲日本少妇熟睡 | 成人黄大片视频在线观看 | 国内精品久久久精品电影院 | 人人爽人人做 | 九九热免费视频在线观看 | 国产黄色播放 | 国产一区二区三区免费观看视频 | 黄色成年网站 | 国内精品免费久久影院 | 国产精品久久久久久久久搜平片 | 五月婷丁香 | 欧美国产日韩一区二区三区 | 九九av | 久草在线视频网 | 国产精久久久 | 99久久精品一区二区成人 | 最新日韩视频 | 色婷婷福利 | 久久亚洲福利 | 日韩一级黄色片 | 日韩成人精品在线观看 | av免费在线免费观看 | av性网站 | 久久久激情视频 | 国产精品一二 | 国产成人精品999 | av免费电影网站 | 亚洲日本成人网 | 欧美高清成人 | 欧美精品在线观看免费 | 91在线播| 国产在线国偷精品产拍 | 国产精品123 | 日韩一级电影网站 | 九色视频网站 | 怡红院av久久久久久久 | 国产这里只有精品 | 91黄色免费网站 | 日韩精品一区二区电影 | 亚洲精品乱码久久久久 | 午夜精品视频一区二区三区在线看 | 国产精品久久久视频 | 日本在线中文 | 久射网 | 狠狠干狠狠色 | 久久成人综合视频 | 欧美日韩精品免费观看视频 | 国产麻豆精品久久一二三 | 国产成人99av超碰超爽 | av中文电影 | 国产一区福利在线 | 久久精品视频免费播放 | 欧美成人精品在线 | 久草视频在线免费播放 | 天天射综合网视频 | 欧美日韩在线电影 | 亚洲欧美在线视频免费 | 欧美国产日韩一区二区三区 | 欧美性超爽 | 亚洲视频99 | 成人wwwxxx视频| 欧美在线观看视频 | 97品白浆高清久久久久久 | 亚洲 欧美变态 另类 综合 | 99r精品视频在线观看 | 精品国产一区二区久久 | 一区二区三区中文字幕在线观看 | 国产一区二区高清视频 | 九九爱免费视频 | 成人av电影免费在线观看 | 国产专区视频在线 | 中文字幕乱视频 | 日本精品视频一区二区 | 免费男女网站 | 欧美综合在线视频 | 日本系列中文字幕 | 婷婷在线色 | 探花国产在线 | 97在线公开视频 | 在线国产日本 | a精品视频| 91在线视频在线 | 中文在线字幕观看电影 | 在线视频欧美日韩 | 天堂av在线网 | 黄色中文字幕在线 | 亚洲成人黄色网址 | 国产精品欧美久久久久久 | 国产女人40精品一区毛片视频 | 国产精品剧情 | 国产免费观看视频 | 午夜视频免费 | 亚洲国产成人久久综合 | av在线短片 | 亚洲精品乱码久久 | 亚洲精品乱码久久久久久9色 | 国语久久 | 日韩二级毛片 | 久久久久久蜜av免费网站 | 亚州精品国产 | 中文字幕日韩一区二区三区不卡 | 久久福利国产 | 人人爽人人爽人人片 | 四川bbb搡bbb爽爽视频 | 欧美福利网站 | 婷婷丁香五 | 欧美调教网站 | 亚洲黄色小说网 | 欧美疯狂性受xxxxx另类 | 黄色在线免费观看网站 | 天堂av最新网址 | 996久久国产精品线观看 | 亚洲 在线 | 91九色九色| 日韩av免费大片 | 亚洲黄网站 | 五月天堂网 | 日日碰狠狠躁久久躁综合网 | 午夜精品电影一区二区在线 | 欧美一区二区精品在线 | 国产午夜精品久久 | 成人三级视频 | 九九九电影免费看 | 精品亚洲免费 | 日韩在线观看视频一区二区三区 | 成人动漫精品一区二区 | 日韩av电影网站在线观看 | 亚洲精品一区二区三区高潮 | 日韩三级一区 | 丁香六月久久综合狠狠色 | 久久综合九色综合欧美就去吻 | 亚洲最新av在线网站 | 国产精品久久99综合免费观看尤物 | 国产五十路毛片 | 狠狠的干狠狠的操 | 超碰人人在线观看 | 欧美日韩亚洲第一页 | 久久不见久久见免费影院 | freejavvideo日本免费 | 99国产视频在线 | 久热免费在线 | 91探花视频 | 中文在线亚洲 | 国产色道 | 懂色av一区二区在线播放 | 在线观看理论 | 中文字幕在线观看不卡 | 韩日视频在线 | 久久综合狠狠综合久久综合88 | 午夜精品久久久久久 | 天天综合色天天综合 | 亚洲视频免费在线观看 | 成年人在线免费看视频 | 色在线免费观看 | 国产精品免费观看网站 | 国内精品视频一区二区三区八戒 | 成人一区电影 | 亚洲精品在线观看的 | 免费黄a| 免费久久99精品国产婷婷六月 | 韩日色视频 | 久久国产精品99久久久久久进口 | 午夜久久福利影院 | 亚洲精品影视 | 欧美激情第八页 | 国产精品久久久久久模特 | 日韩在线视频线视频免费网站 | 午夜在线观看影院 | 91毛片在线观看 | 国产精品乱码久久久久久1区2区 | 成人一区影院 | 亚洲蜜桃av | 亚洲欧洲精品久久 | 中文字幕免费 | 狠狠久久综合 | 美女视频黄是免费的 | 国产视频 亚洲视频 | 激情五月激情综合网 | 99免费在线视频观看 | 久久99精品久久久久久秒播蜜臀 | 丝袜制服天堂 | 欧洲一区精品 | 久热国产视频 | 最近2019好看的中文字幕免费 | 欧美精彩视频在线观看 | 国产高清网站 | 中文字幕乱码电影 | 美女网站色在线观看 | 天天干天天摸天天操 | 久久视频在线观看 | 九九免费精品视频在线观看 | 五月婷婷丁香色 | 国产精品女人网站 | 日日躁你夜夜躁你av蜜 | av在线直接看 | 久久精品免费观看 | 婷婷久久久 | 国产免费观看久久 | 久久久这里有精品 | 精品国产乱码久久久久久浪潮 | 美女黄网站视频免费 | 日韩在线视 | av超碰在线 | 精品国产自在精品国产精野外直播 | 91麻豆精品国产91久久久久久 | 日本九九视频 | 三级黄色三级 | 右手影院亚洲欧美 | 丁香婷婷激情网 | 亚洲欧美日本一区二区三区 | 国产在线观看a | 九色琪琪久久综合网天天 | 日韩av男人的天堂 | 久久久精品综合 | 成人午夜影院在线观看 | 久久精品看片 | 国产一卡在线 | 最新av中文字幕 | 手机av在线不卡 | 麻豆精品在线 | 亚洲国产精品成人女人久久 | 中文字幕在线观看第一区 | 国产成人精品一二三区 | 99久久精品国产系列 | 国产精品原创 | 一区二区三区高清 | 国产91亚洲 | 成人黄色一级视频 | 99色免费视频 | 成人午夜精品久久久久久久3d | 亚洲午夜不卡 | 国产美女视频免费观看的网站 | 久久精品国产精品亚洲 | 中文字幕资源网 国产 | 狠狠色噜噜狠狠狠狠2021天天 | 亚洲精欧美一区二区精品 | 国产一区视频在线播放 | 成人a在线观看高清电影 | 欧美日韩视频网站 | 日韩黄色一区 | 精品国产视频在线观看 | 国产亚洲综合精品 | 日韩二区精品 | 国产一区播放 | 99热只有精品在线观看 | 91一区一区三区 | 中国老女人日b | 午夜久久福利 | 久久国产精品久久国产精品 | 久久精品综合视频 | 国产一级高清 | 99在线视频网站 | 狠狠色香婷婷久久亚洲精品 | 日韩欧美一区二区在线 | 精品国产亚洲在线 | 国产美女搞久久 | 久久久久亚洲精品中文字幕 | 五月宗合网| 亚洲精品女 | 亚洲黄电影 | 欧美在线a视频 | 国产丝袜网站 | 欧美 亚洲 另类 激情 另类 | 99视频黄| 亚洲丝袜一区二区 | 人人澡人人爽 | 欧美日韩99| 色是在线视频 | 欧美在线18| 婷婷六月综合网 | 国产黑丝一区二区三区 | 免费亚洲精品 | 国产午夜影院 | 视频一区二区三区视频 | 欧美精品在线观看 | 久久久久免费网 | 超碰在线色 | 亚洲精品乱码白浆高清久久久久久 | 亚一亚二国产专区 | 久久国产美女视频 | 国产探花在线看 | 国产综合小视频 | 五月色婷 | 国产无遮挡猛进猛出免费软件 | 精品免费视频. | 二区精品视频 | 免费裸体视频网 | 欧美在线a视频 | 四虎影视成人精品国库在线观看 | 久久视频精品在线 | 久久人人添人人爽添人人88v | 五月综合激情网 | 成年人免费观看在线视频 | 欧美日韩高清免费 | 欧美色综合 | 麻豆一二三精选视频 | 日韩在线网 | 亚洲午夜av | 成年人在线免费看视频 | 天天插天天干 | 人人澡人| 99精品视频在线免费观看 | 久久久www免费电影网 | 蜜臀av夜夜澡人人爽人人桃色 | 一区二区三区韩国免费中文网站 | 欧美一进一出抽搐大尺度视频 | 97天堂| 久久综合免费视频影院 | 亚洲精选国产 | 91麻豆免费版 | 国产精品一区免费看8c0m | 韩国中文三级 | 啪啪肉肉污av国网站 | 亚洲激情六月 | 久久久久国产一区二区三区 | 五月激情在线 | 免费欧美精品 | 99这里只有| 超碰在线人 | 国产高清免费在线观看 | 九九色综合 | 久久国产品 | av激情五月 | 99在线精品观看 | 久久综合精品国产一区二区三区 | 天天操夜夜看 | 欧美性一级观看 | 五月天国产精品 | 日韩精品久久久久久 | 黄色日本免费 | 黄色特级一级片 | 国产99视频在线观看 | 精品国产aⅴ一区二区三区 在线直播av | 久久国产精品一区二区三区 | 精品国产乱码 | 美女网站在线观看 | 麻豆免费看片 | 又黄又爽又色无遮挡免费 | 91精品久久久久久综合乱菊 | 精品久久一区 | 看片的网址 | 久久艹久久 | 亚洲精品国精品久久99热 | 视频成人永久免费视频 | 国产精品久久久久一区二区三区共 | 看av在线 | 国产不卡视频在线播放 | 免费在线观看亚洲视频 | 亚洲精品一区二区三区新线路 | 日韩成片 | 亚洲综合日韩在线 | 99精品视频在线看 | 在线观看日韩视频 | 九月婷婷色 | 亚洲成aⅴ人在线观看 | 国产精品wwwwww | 日韩精品观看 | 99精品视频播放 | 国产精品麻 | 久久9精品 | 国产在线日韩 | 国产专区免费 | 久久综合九色综合欧美狠狠 | 亚洲人av免费网站 | 伊人视频 | 日韩在线观看第一页 | 国产拍揄自揄精品视频麻豆 | 成人黄色影片在线 | 久久成人国产精品一区二区 | 97**国产露脸精品国产 | 精品久久一 | 成人黄色影片在线 | 久久久在线视频 | 草久视频在线 | 一区二区三区四区精品 | 男女视频久久久 | 天天干天天拍天天操 | 成人理论电影 | www.国产高清| 四虎国产免费 | 国产成人一二三 | 成x99人av在线www | 日韩专区av | 香蕉久久国产 | 久久久资源网 | av电影免费在线看 | 亚洲综合色激情五月 | 在线精品观看 | 亚洲视频在线免费看 | 久久不射电影院 | 日韩三级免费 | 国产在线精品国自产拍影院 | 国产精品99爱 | 国产精品欧美久久久久天天影视 | 国产精品va在线观看入 | 色在线网 | 91毛片视频 | 西西www4444大胆在线 | 久久激情综合 | 中文字幕电影网 | 韩国一区二区av | 日韩精品偷拍 | 午夜精品成人一区二区三区 | 成人羞羞视频在线观看免费 | 国产91大片 | 亚洲天堂在线观看完整版 | 天天操天天能 | 国产女人18毛片水真多18精品 | 九九热只有精品 | 成人免费视频观看 | 九色91在线 | 天天综合色天天综合 | 久久精品香蕉视频 | 亚洲视频免费在线观看 | 成人免费电影 | 免费黄色网止 | 91成品视频 | 久久免费视频国产 | 草樱av| 亚洲最快最全在线视频 | a天堂一码二码专区 | 激情综合五月天 | 国产一级高清视频 | 国产精品99久久免费黑人 | 高清av在线 | 欧美久久精品 | 91精品免费在线观看 | 中文字幕在线观看的网站 | 国产精品9999久久久久仙踪林 | 91成人精品在线 | 婷婷综合av | 国产一区二区精 | 国产精品一区二区吃奶在线观看 | 一区二区三区日韩精品 | 五月综合网 | .国产精品成人自产拍在线观看6 | 久久久久成人精品 | 日日夜夜人人精品 | 久久精品草| 久久久国产精品亚洲一区 | 夜夜夜夜爽 | 美女黄视频免费看 | 日韩黄色大片在线观看 | 久久久久久久久久亚洲精品 | 亚洲免费在线看 | 国产手机av | 99久久99久久精品免费 | 在线黄色国产 | 国产专区在线看 | 国产高清久久久久 | 国内精品亚洲 | 国产精品videossex国产高清 | 伊人天天综合 | 波多野结衣视频一区二区 | 免费在线观看一区二区三区 | 亚洲免费一级电影 | 国产视频日韩视频欧美视频 | 91日韩在线播放 | 天天av在线播放 | 2022国产精品视频 | 天天爽天天做 | 中国精品一区二区 | 国产特级毛片aaaaaa | 999视频在线播放 | 伊甸园av在线 | 中文字幕资源网在线观看 | 99热这里只有精品8 久久综合毛片 | 午夜视频一区二区三区 | 婷香五月 | 国产手机视频在线 | 国产精品视频地址 | 日韩特黄av| 欧美黄污视频 | 国产精品a久久 | 去看片 | 久久久www| 国产精品网在线观看 | 深爱婷婷激情 | 日韩免费中文 | av成年人电影 | 国产视频一区二区在线 | 日韩91精品 | av先锋影音少妇 | 99理论片 | 日日夜夜噜| 日韩激情网 | 992tv在线| 日韩欧美视频免费看 | 96精品视频 | 久久精品男人的天堂 | 亚洲视频精品在线 | 亚洲综合国产精品 | 视频成人永久免费视频 | 中文字幕 婷婷 | 又黄又爽又刺激的视频 | 亚洲国产三级 | 午夜婷婷网 | 国产一级黄大片 | 深爱激情婷婷网 | 国产精品久久久久影院日本 | 四虎在线永久免费观看 | 国产精品久久久久久久av大片 | 久久一区二区三区超碰国产精品 | 香蕉视频啪啪 | 天堂av影院 | 亚洲精品乱码久久久久久9色 | 天天躁天天狠天天透 | 日韩色在线 | .精品久久久麻豆国产精品 亚洲va欧美 | 成人欧美亚洲 | 国产色拍| 欧美福利久久 | 国产一区精品在线观看 | 国产女做a爱免费视频 | 久久成人麻豆午夜电影 | 日韩免费一区 | 国产一级做a爱片久久毛片a | 激情五月婷婷丁香 | 国产精品综合av一区二区国产馆 | 天天操天天插 | 亚洲伦理中文字幕 | 亚洲天堂网站视频 | a资源在线 | 久久国产二区 | 精品国产伦一区二区三区观看说明 | 久久理论片 | 色狠狠婷婷 | 色天堂在线视频 | 久久歪歪| 午夜91在线 | 日日操日日插 | 久久9999久久 | 黄色成人免费电影 | 狠狠艹夜夜干 | 人人狠狠综合久久亚洲婷 | 国产精品一区二区久久国产 | 亚洲视频综合在线 | 免费黄a大片 | 久久国产精品小视频 | 天天干一干| 蜜臀av性久久久久蜜臀aⅴ涩爱 | 精品久久久免费视频 | 国产精品久久久久久久久婷婷 | 欧美一级高清片 | 在线电影91| 五月婷婷伊人网 | 欧美电影黄色 | 深爱五月网 | 免费福利在线播放 | 精品中文字幕在线观看 | 久久国内精品99久久6app | 国语自产偷拍精品视频偷 | 在线观看av片 | 成人a v视频 | av直接看| 狠狠干天天干 | 人人涩| 91九色在线观看 | 中文乱幕日产无线码1区 | 最新av在线播放 | 国产亚洲精品久久久久久大师 | 国产精品永久在线 | 99久久99久久精品国产片果冰 | 玖玖视频网| 久久综合九色综合久久久精品综合 | 天天艹天天操 | 在线观看久草 | 亚洲精品a区 | 91色亚洲| 精品亚洲成人 | 国产精品久久久久久久免费 | 国产精品21区| 一区二区av | 色综合a| 亚洲精选久久 | 999毛片| 国产精品入口麻豆www | 久久综合给合久久狠狠色 | 免费视频黄| 天天操天天干天天综合网 | 久久久久久久av麻豆果冻 | 国产精品成人自产拍在线观看 | 日韩欧美网站 | 日韩精品一区二区三区免费视频观看 | 香蕉视频最新网址 | 韩国av在线播放 | 欧美国产91 | 日韩精品中文字幕久久臀 | 久久精品九色 | 亚洲aaa级 | 久久免费视频网 | 日韩高清一二区 | 国产一区二区在线免费 | 日本中文字幕在线一区 | 色窝资源| 免费看久久久 | 欧美日韩国产成人 | 国产裸体永久免费视频网站 | 欧美一区二区精品在线 | 亚洲精品国精品久久99热 | 国产又粗又猛又黄又爽视频 | 婷婷伊人综合亚洲综合网 | 国产精品久久99综合免费观看尤物 | 久久网站免费 | 天天综合久久 | 国产精品国产亚洲精品看不卡15 | 日韩av免费观看网站 | 激情综合五月 | 色中色综合 | 中文字幕在线观看日本 | 欧美日韩视频一区二区三区 | 欧美视频二区 | av免费在线网站 | 欧美伦理一区二区三区 | 精品主播网红福利资源观看 | 国产精品视屏 | 最新国产精品亚洲 | 国模视频一区二区三区 | 久久综合九色99 | 六月天色婷婷 | 午夜在线日韩 | 亚州精品天堂中文字幕 | 国产免码va在线观看免费 | 成人黄色短片 | 中文字幕在线观看视频一区二区三区 | 欧美在线观看小视频 | 涩涩伊人 | 久久成人国产 | 99视频国产精品免费观看 | 中文字幕影片免费在线观看 | 99亚洲国产精品 | 黄色看片 | 蜜臀av在线一区二区三区 | 6080yy午夜一二三区久久 | 色偷偷中文字幕 | 日韩电影久久 | 涩涩网站在线 | 911av视频 | 亚洲欧美日韩中文在线 | 国产最新精品视频 | 亚洲日本精品 | 国产区精品在线 | 激情网在线视频 | 17婷婷久久www | 国产福利在线不卡 | 在线观看av国产 | 亚洲夜夜爽| 又紧又大又爽精品一区二区 | www.com.日本一级 | av在线进入 | 日韩欧美视频在线观看免费 | 午夜精品婷婷 | 91精品视频在线免费观看 | 91精品国产成人 | 久久亚洲免费 | 亚洲婷婷在线 | 亚洲欧美在线综合 | 玖玖玖精品 | 又黄又爽又无遮挡的视频 | 在线看毛片网站 | 91色亚洲| 国产免费视频在线 | 国产精品久久久久久久久费观看 | 国产乱对白刺激视频在线观看女王 | 亚洲欧美成人网 | 午夜精品久久久久久久99婷婷 | 日本精品视频免费 | 91精品国产九九九久久久亚洲 | 天天综合狠狠精品 | 午夜精品区 | 亚洲精品玖玖玖av在线看 | 中文字幕一区二区三区在线视频 | 中文字幕在线免费播放 | 波多野结衣在线观看视频 | 精品美女久久久久久免费 | 在线免费观看国产 | 国产日韩精品在线观看 | 欧美少妇18p | 91人网站 | 99精品国产一区二区 | 在线观看国产www | 国产日韩亚洲 | 在线观看91精品国产网站 | 国产精品1区2区3区 久久免费视频7 | 黄色小视频在线观看免费 | 人人添人人澡人人澡人人人爽 | 国产在线91在线电影 | 激情小说网站亚洲综合网 | 91视频啊啊啊| 婷婷婷国产在线视频 | 欧美在线视频一区二区 | 韩国精品福利一区二区三区 | 久久官网 | 成人av资源网站 | 久久久久久久av | 成年人av在线播放 | 91大神精品视频在线观看 | 中文一区在线 | 中文字幕一区二区三区四区在线视频 | 国产99久久久久 | 国产又黄又硬又爽 | av一区二区三区在线 | 国产精品区在线观看 | 国产视频欧美视频 | 国模一二三区 | 久久久久日本精品一区二区三区 | 2019国产精品 | 久久老司机精品视频 | 亚洲黄色大片 | 波多野结衣视频在线 | 日韩特级黄色片 | 国产精品成久久久久三级 | 亚洲黄色软件 | 婷婷综合久久 | 亚洲色视频 | 欧美一级在线看 | 日韩色视频在线观看 | 天天色婷婷 | 精品人妖videos欧美人妖 | 亚洲欧美视频一区二区三区 | 久久久久久久99 | 97色资源 | 欧美一区日韩精品 | 91亚洲影院| 日韩网站一区二区 | 久久影院一区 | 在线观看成人一级片 | avove黑丝 | 九九亚洲视频 | 精品在线观看视频 | 91中文在线视频 | 亚洲精品午夜久久久久久久久久久 | 黄色特级毛片 | 最新国产精品亚洲 | 国产亚洲精品久久久久动 | 91禁在线观看 | 国产在线精品视频 | 国产精品免费一区二区三区 | 国产成人精品久久亚洲高清不卡 | 国产精品亚洲精品 | 色.www | 欧美日韩国产在线精品 | 国产精品黄色影片导航在线观看 | 久久综合九色欧美综合狠狠 | 国产99一区| 91九色性视频| 国产精品久久久久久久久久不蜜月 | 久久激情视频免费观看 |