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

Struts2 國際化與防止刷新重復提交表單

開發 后端
本實例主要是功能是實現Struts2 國際化,防止刷新得利提交表單,利用struts2的驗證機制驗證字符輸入的合法性,郵箱輸入的正確性。

本實例用兩個頁面(create.jsp,createResult.jsp),一個Action(CreateAction),一個驗證文件(CreateAction-validation.xml),兩個Struts2 國際化文件(message_en_US.properties,message_zh_CN.properties),還有一個struts.xml(必有的).創建用戶成功之后,顯示剛才創建的信息,不成功則顯示錯誤提示,錯誤提示使用了Struts2 國際化來顯示,輸入合法性就用了用struts2的驗證機制驗證.

如下結構圖,好好對照:

K:\ECLIPSWORKS\STRUTS2TEST
│  .classpath
│  .mymetadata
│  .project

├─.myeclipse
├─src
│  │  message_en_US.properties
│  │  message_zh_CN.properties
│  │  struts.xml
│  │
│  └─cn
│      └─struts2
│              CreateAction-validation.xml
│              CreateAction.java

└─WebRoot
    │  create.jsp
    │  createResult.jsp
    │
    ├─META-INF
    │      MANIFEST.MF
    │
    └─WEB-INF
        │  web.xml
        │
        ├─classes
        │  │  message_en_US.properties
        │  │  message_zh_CN.properties
        │  │  struts.xml
        │  │
        │  └─cn
        │      └─struts2
        │              CreateAction-validation.xml
        │              CreateAction.class
        │
        └─lib
                              
                commons-logging-1.0.4.jar
                freemarker-2.3.8.jar
                jcommon-1.0.14.jar
                junit.jar
                ognl-2.6.11.jar
                struts2-core-2.0.11.2.jar
                struts2-jfreechart-plugin-2.0.11.2.jar
                xwork-2.0.5.jar


1.CreateAction.java
// ******************************************************************
package cn.struts2;

import java.util.Date;

import com.opensymphony.xwork2.ActionSupport;

public class CreateAction extends ActionSupport
{
    private String name ;
    private String password;
    private String repassword;
    private Date birthday;
    private Date registedDay;
    private int age;
    private String email;
   
    /**
     * @return the name
     */
    public String getName()
    {
        return name;
    }
    /**
     * @param name the name to set
     */
    public void setName(String name)
    {
        this.name = name;
    }
    /**
     * @return the password
     */
    public String getPassword()
    {
        return password;
    }
    /**
     * @param password the password to set
     */
    public void setPassword(String password)
    {
        this.password = password;
    }
    /**
     * @return the repassword
     */
    public String getRepassword()
    {
        return repassword;
    }
    /**
     * @param repassword the repassword to set
     */
    public void setRepassword(String repassword)
    {
        this.repassword = repassword;
    }
    /**
     * @return the birthday
     */
    public Date getBirthday()
    {
        return birthday;
    }
    /**
     * @param birthday the birthday to set
     */
    public void setBirthday(Date birthday)
    {
        this.birthday = birthday;
    }
    /**
     * @return the registedDay
     */
    public Date getRegistedDay()
    {
        return registedDay;
    }
    /**
     * @param registedDay the registedDay to set
     */
    public void setRegistedDay(Date registedDay)
    {
        this.registedDay = registedDay;
    }
    /**
     * @return the age
     */
    public int getAge()
    {
        return age;
    }
    /**
     * @param age the age to set
     */
    public void setAge(int age)
    {
        this.age = age;
    }
   
    public String getEmail()
    {
        return email;
    }
    public void setEmail(String email)
    {
        this.email = email;
    }
    //****************************************
   
    public String execute()throws Exception
    {
        return SUCCESS;
    }
   
}


2.置全局Struts2 國際化文件(兩個):

// message_en_US.properties ********************************************
create = Create Users Information
username.invalid = User Name Not Null!
password.invalid.null = Password Not Null!
password.invalid.too.short.or.long = Password should be between 6 and 10
submit = submit
//***********************************************************************
中文國際化
// message_zh_CN.properties ********************************************
create = \u521b\u5efa\u7528\u6237\u4fe1\u606f
username.invalid = \u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a
password.invalid.null = \u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a
password.invalid.too.short.or.long = \u5bc6\u7801\u957f\u5ea6\u5fc5\u987b\u57286\u523010\u4e4b\u95f4
submit =\u63d0\u4ea4

//***********************************************************************

注意:如(create = \u521b\u5efa\u7528\u6237\u4fe1\u606f)等號右邊的一串亂碼是中文字符對就的ASCII碼值,如果你需要轉換,可以打開你的CMD(開始-->運行-->輸入CMD即可),輸入命令native2ascii,回車,將你的中文字符粘上,再回車就可以看到一串亂碼了.再將其COPY到相應的位置即可.

文件的名字不能亂取,XXX_en_US.properties,XXX_zh_CN.properties,XXX后面的名字是固定的,而前面的XXX是根據你的struts.xml文件中的

 < CONSTANT name="struts.custom.i18n.resources" value="XXX">中的XXX而取的.本例的XXX就是message.

3.struts.xml
//  ************************************************************************
< ?xml version="1.0" encoding="UTF-8"?>
http://struts.apache.org/dtds/struts-2.0.dtd">


< STRUTS>
   < CONSTANT name="struts.custom.i18n.resources" value="message">< /CONSTANT>
   
   < PACKAGE name="struts2" extends="struts-default">

        < ACTION class=cn.struts2.CreateAction name="create">
        /createResult.jsp< /RESULT>
        < RESULT name="input">/create.jsp< /RESULT>
       
       
       
        < INTERCEPTOR-REF name="token">< /INTERCEPTOR-REF>
        < INTERCEPTOR-REF name="defaultStack">< /INTERCEPTOR-REF>
        /create.jsp            
       
      

  < /PACKAGE>

//************************************************************************

4.web.xml 
// ****************************************************************

    xmlns="    xmlns:xsi="    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
     
 
  < FILTER>
      < FILTER-NAME>struts2< /FILTER-NAME>
      < FILTER-CLASS>org.apache.struts2.dispatcher.FilterDispatcher< /FILTER-CLASS>
  < /FILTER>
 
  < FILTER-MAPPING>
      < FILTER-NAME>struts2
      < URL-PATTERN>/*< /URL-PATTERN>
  < /FILTER-MAPPING>
 
  
< /WEB-APP>

//*************************************************************************

5.JSP文件


(1)
// createResult.jsp ************************************************************************

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib prefix="s" uri="/struts-tags" %>


 
    < BASE href="<%=basePath%>">
   
   
   
    < META content=no-cache http-equiv=pragma>
    < META content=no-cache http-equiv=cache-control>
    < META content=0 http-equiv=expires>   
    < META content=keyword1,keyword2,keyword3 http-equiv=keywords>
    < META content="This is luanmad's JSP page" http-equiv=description>
    < !--
    < LINK rel=stylesheet type=text/css href="styles.css">
    -->


 
 
    User Name:${requestScope.name }

    Password :${requestScope.password }

    Age:< ?xml:namespace prefix = s />< s:property value="age">

    Birthday:< s:property value="birthday">< /s:property>

    RegistedDay:< s:property value="registedDay">< /s:property>

    Email:< s:property value="email">< /s:property>

   
 

//***********************************************************************

(2) 
// create.jsp *******************************************************************

< %@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<%@ taglib prefix="s" uri="/struts-tags"%>


   
        ">

       

        < META content=no-cache http-equiv=pragma>
        < META content=no-cache http-equiv=cache-control>
        < META content=0 http-equiv=expires>
        < META content=keyword1,keyword2,keyword3 http-equiv=keywords>
        < META content="This is luanmad's JSP page " http-equiv=description>
        < !--
   
    -->

   

   
               
        < s:form method="post" action="create">
            < !-- 防止刷新重復提交-->
            < s:token>< /s:token>

            < s:textfield name="name" label="User Name">< /s:textfield>
            < s:password name="password" label="Password">< /s:password>
            < s:textfield name="age" label="Age">< /s:textfield>
            < s:textfield name="birthday" label="Birthday">< /s:textfield>
            < s:textfield name="registedDay" label="RegistedDay">
            < s:textfield name="email" label="Email">
            < s:submit key="submit">< /s:submit>
            < s:reset label="reset">< /s:reset>

       
   

//*******************************************************************

6.驗證文件(注意名字要與你的Action名字一樣,后面再跟固定的(-validation.xml)如(CreateAction-validation.xml)

CreateAction-validation.xml:
// ****************************************************************************
< ?xml version="1.0" encoding="UTF-8"?>
http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd
">

< !-- 格式的寫法可以參照XWork Validator 1.0.2.dtd -->
< !-- 參數設置參照xwork-2.0.5.jar 下的com.opensymphony.xwork2.validator.validators/default.xml -->
< VALIDATORS>
   
   
    < !--驗證誰, 用誰來驗證 -->
    < FIELD name="name">
        < FIELD-VALIDATOR type="requiredstring">
            < !--requiredstring對應的類的方法里的參數名trim 如public void setTrim(boolean trim)里的trim -->
            < PARAM name="trim">true< /PARAM>
            < !-- message key的key內容是I18N里(即baseName_zh_CN.properties和baseName_en_US.properties中)定義的字段名即等號在邊的名字如(username.invalid = 名字不能為空)-->
            < /MESSAGE>
        < /FIELD-VALIDATOR>
    < /FIELD>
   
    < FIELD name="password">
        < FIELD-VALIDATOR type="requiredstring">
            < PARAM name="trim">true< /PARAM>
            < MESSAGE key="password.invalid.null">< /MESSAGE>
        < /FIELD-VALIDATOR>
    < /FIELD>
    < FIELD name="password">
        < FIELD-VALIDATOR type="stringlength">
            < PARAM name="minLength">6< /PARAM>
            < PARAM name="maxLength">16< /PARAM>
            < MESSAGE key="password.invalid.too.short.or.long">< /MESSAGE>
        < /FIELD-VALIDATOR>
    < /FIELD>
   
    < !-- 以下未做國際化 -->
    < FIELD name="age">
        < FIELD-VALIDATOR type="int">
            1< /PARAM>
            < PARAM name="max">150< /PARAM>
            < MESSAGE>age should be between ${min} and ${max}

        < /FIELD-VALIDATOR>
    < /FIELD>
   
    < FIELD name="birthday">
        < FIELD-VALIDATOR type="required">
            < MESSAGE>birthday not null!< /MESSAGE>
        < /FIELD-VALIDATOR>
       
        < FIELD-VALIDATOR type="date">
            < PARAM name="min">2000-01-01< /PARAM>
            < PARAM name="max">2008-01-01< /PARAM>
            < MESSAGE>birthday should be between ${min} and ${max}
        < /FIELD-VALIDATOR>
   
   
    < FIELD name="email">
        < FIELD-VALIDATOR type="email">
            < MESSAGE>email format error!
        < /FIELD-VALIDATOR>
    < /FIELD>
   

【編輯推薦】

  1. 在Eclipse中開發struts應用程序
  2. 手把手教你在Eclipse中配置開發Struts
  3. Eclipse下開發struts完整解決亂碼問題
  4. Struts相關背景介紹
  5. 使用Easy Struts for Eclipse開發Struts
責任編輯:張燕妮 來源: csdn.net
相關推薦

2011-08-19 13:13:14

struts2Java

2009-06-25 16:04:30

2009-02-04 15:04:13

2009-06-05 09:40:59

2010-11-23 16:56:04

mysql表單

2013-11-13 14:39:53

表單提交開發

2013-11-13 11:01:14

表單表單重復提交表單策略

2009-07-29 09:54:34

struts2和str

2009-06-04 10:44:18

struts2 亂碼解決辦法

2011-05-13 09:53:02

strutsAjax

2009-06-18 11:37:24

Struts2中ForJavaScript

2009-06-25 15:11:28

Struts2教程Struts2程序

2009-02-04 10:51:07

2009-06-08 16:44:00

struts2 ogn

2022-11-11 07:34:43

2009-07-03 09:35:57

Struts2 JSP

2011-07-08 11:13:42

Cocoa Touch XCode

2009-06-04 08:34:24

Struts2配置struts.xml

2022-11-17 07:43:13

2022-11-15 07:39:48

點贊
收藏

51CTO技術棧公眾號

亚洲精品动态| 欧美草逼视频| 国模少妇一区二区三区| 久99久在线视频| jlzzjizz在线播放观看| 国产精品久久久久av电视剧| 中文字幕在线免费不卡| 成人片在线免费看| 懂色av中文字幕| 欧美日一区二区三区在线观看国产免| 日韩精品中文字| 在线观看视频你懂得| 国产日韩电影| 亚洲一级二级三级| 亚洲欧美日产图| 欧美最猛性xxxx| 在线观看日本一区二区| 九色porny丨入口在线| 国产精品福利一区| 欧美激情第一页在线观看| 国产男女无套免费网站| 日韩精品电影在线观看| 久久久久亚洲精品成人网小说| www亚洲色图| 婷婷综合成人| 亚洲成**性毛茸茸| 欧美人与性动交α欧美精品| 本网站久久精品| 欧美午夜美女看片| 国精产品一区一区三区视频| a级片国产精品自在拍在线播放| 日本一区免费视频| 久久综合给合久久狠狠色| 亚洲av无码国产精品永久一区| 免费高清成人在线| 国产不卡av在线免费观看| 久久精品国产亚洲av无码娇色| 国产精品成人a在线观看| 亚洲欧洲激情在线| 中文字幕5566| 夜夜春成人影院| 日韩成人在线视频网站| xxxwww国产| 亚洲精品成人无码毛片| 99riav视频在线观看| 一区二区三区在线影院| 一区二区三区四区在线视频| 国产美女视频一区二区三区| 久久中文字幕电影| 久久久久久国产精品mv| 三级网站在线看| 好吊妞视频这里有精品| 91日韩视频| 一区二区成人av| 欧美丰满美乳xxⅹ高潮www| 亚洲日产av中文字幕| 国产视频亚洲视频| 9.1成人看片免费版| 一区三区在线欧| 亚洲三级免费看| 人人妻人人澡人人爽| 欧美色图一区| 久久天天躁狠狠躁老女人| 成人信息集中地| 91精品蜜臀一区二区三区在线| yw.139尤物在线精品视频| 亚洲精品久久久久久国| 91超碰成人| 欧美激情一区二区三区久久久| 国产亚洲精品久久久久久无几年桃| 欧美久色视频| 韩国v欧美v日本v亚洲| 久久一区二区三区视频| 热久久久久久久| 99c视频在线| 日韩在线免费播放| 欧美激情一区二区三区四区| 亚洲午夜精品久久久中文影院av| 久久久久久婷婷| 婷婷色在线视频| 久久久亚洲午夜电影| 亚洲国产午夜伦理片大全在线观看网站| 淫片在线观看| 亚欧色一区w666天堂| 91精品91久久久中77777老牛| 欧美精品高清| 欧美一区二区三区视频免费播放| 亚洲一区二区三区四区av| 国产精品美女久久久久久不卡| 中文字幕欧美国内| 久久在线视频精品| 日本在线观看不卡视频| 91麻豆精品秘密入口| 欧美偷拍视频| 综合激情成人伊人| 北条麻妃在线观看| 国产在线一区不卡| 国产亚洲欧美日韩美女| 少妇久久久久久被弄高潮| 免费看的黄色欧美网站| 91在线免费视频| 免费在线黄色影片| 亚洲精品国产一区二区三区四区在线| 男女午夜激情视频| 欧美1区2区3| 久久aⅴ国产紧身牛仔裤| 亚洲深夜福利在线| 强行糟蹋人妻hd中文| 日韩极品在线观看| 国内不卡一区二区三区| 国产精品剧情| 在线中文字幕一区二区| 国产白袜脚足j棉袜在线观看| 欧美一区二区三区激情视频| 97免费视频在线| 国产欧美日韩成人| 国产精品区一区二区三区| 777av视频| 欧洲大片精品免费永久看nba| 亚洲欧洲日产国产网站| 免费在线观看黄网站| 国产成人精品亚洲777人妖| 日韩欧美亚洲v片| 中文在线最新版地址| 欧美精品一区二区三区一线天视频 | 少妇高潮惨叫久久久久| 国产亚洲一级| 国产乱码精品一区二区三区日韩精品| 免费黄色电影在线观看| 欧美三级日韩三级国产三级| 亚洲一区二区三区蜜桃| 国产日韩一区二区三区在线播放| 不卡视频一区二区三区| 在线视频中文字幕第一页| 欧美美女喷水视频| 国产美女网站视频| 美洲天堂一区二卡三卡四卡视频 | 91精品一区二区三区综合在线爱| 日韩免费视频一区二区| 91久久久久久久久久久久久| 免费看黄色一级视频| 樱桃国产成人精品视频| 色婷婷激情视频| 国产精品99视频| 成人免费黄色网| 久草资源在线观看| 这里只有精品免费| 国产又大又长又粗又黄| 亚洲av综合色区无码一区爱av | 噜噜噜噜噜久久久久久91| 欧美xxxx做受欧美88bbw| 欧美变态tickling挠脚心| 欧美黑人精品一区二区不卡| 久久成人麻豆午夜电影| 一区二区三区国产福利| 电影中文字幕一区二区| 久久中国妇女中文字幕| www久久久久久| 亚洲成a天堂v人片| 国产高清在线一区| 免费一级毛片在线观看| 日韩欧美综合在线视频| 短视频在线观看| 日韩电影在线免费看| 亚洲第一导航| 九九99久久精品在免费线bt| 欧美黑人性猛交| 成人欧美一区二区三区视频xxx | 免费精品99久久国产综合精品应用| 欧美日韩在线播放视频| 国产精品一区二区久久| 黄色在线视频网站| 精品成人一区二区三区| 国产成人av在线| 少妇aaaaa| 国产精品538一区二区在线| 精品国产一区二区三区在线| av成人综合| 日本精品一区二区三区在线播放视频| av中文资源在线| 日韩视频在线观看一区二区| 国产96在线 | 亚洲| 欧美日韩三区四区| 色香蕉在线视频| 六月丁香久久丫| 久久精品国产91精品亚洲| 国产夫绿帽单男3p精品视频| 亚洲大片精品永久免费| 中文字幕在线看高清电影| 精品一二三四区| 欧美日本视频在线观看| 欧美mv日韩| 久久精品ww人人做人人爽| 久久精品嫩草影院| 97在线精品视频| 亚洲一区中文字幕| 成人激情四射网| 天天影视色香欲综合网老头| 蜜桃传媒一区二区亚洲| 国产激情视频一区二区在线观看| 青青草国产精品视频| 日韩欧美视频| 精品国产乱码久久久久久郑州公司| 丁香五月缴情综合网| 欧美成人女星排行榜| 一级黄色在线视频| 亚洲欧美成aⅴ人在线观看| 添女人荫蒂视频| 国产乱子伦一区二区三区国色天香| 成人毛片视频网站| 欧美成人一区二免费视频软件| 欧美三日本三级少妇三99| 午夜影院免费视频| 91视频精品在这里| 伊人国产在线视频| 国产精品综合| 91亚洲精品国产| 日本三级网站在线观看| 久久久久免费观看| 秋霞午夜鲁丝一区二区| 日韩国产在线观看| 丰满少妇久久久| 激情久久久久| 成人小视频在线观看免费| 91综合久久一区二区| 日本欧美色综合网站免费| 我家有个日本女人| 99天天综合性| 伊人五月天婷婷| 久久国产精品色婷婷| 男人天堂999| 中文一区在线| 国产一区二区网| 亚洲日韩成人| a级黄色小视频| 午夜在线观看视频18| 国产精品乱码久久久久久| 国产福利短视频| 国产成人激情av| 粗大的内捧猛烈进出视频| 久久成人av少妇免费| 一级片视频免费观看| 美女视频黄a大片欧美| 国产小视频精品| caoprom在线| 日韩欧美在线中文字幕| 欧美卡一卡二卡三| 国产精品电影一区二区| 中字幕一区二区三区乱码| 久久久久9999亚洲精品| 精品无码在线视频| 久久综合色8888| 一级黄色性视频| 国产日韩在线精品av| 国产福利片在线| 亚洲日本中文字幕| 91精彩在线视频| www欧美日韩| 伊人影院在线视频| 久久久久久久一区二区三区| 不卡一本毛片| 久久人人爽人人| 亚洲人成在线网站| 国产精品网站入口| 中文成人激情娱乐网| 99久久99久久精品国产片| 成人精品毛片| 欧洲亚洲一区二区三区四区五区| 精品美女在线视频| 中文字幕精品在线播放| 精久久久久久| 日本激情视频在线| 国产一区欧美一区| 中文字幕无码人妻少妇免费| 久久久国产午夜精品 | 在线观看视频一区二区三区| 国产日韩欧美亚洲一区| 九一国产精品| a级网站在线观看| 一本色道久久| 最近中文字幕一区二区| 国产99久久久国产精品免费看| 日韩aaaaa| 中文字幕中文字幕在线一区| 豆国产97在线 | 亚洲| 日本韩国精品在线| 国产黄色片免费| 亚洲欧美日韩中文在线制服| 免费观看久久久久| 2019亚洲男人天堂| 成人在线视频www| 免费在线成人av| 欧美日本三区| 色综合色综合色综合色综合| 成人精品国产福利| 精品国产大片大片大片| 欧美日韩亚洲91| 国产富婆一级全黄大片| 亚洲人高潮女人毛茸茸| 国产羞羞视频在线播放| 国产日韩专区在线| 国产精品免费大片| 老太脱裤子让老头玩xxxxx| 国产综合一区二区| 69精品无码成人久久久久久| 午夜精品在线视频一区| 91精品国自产| 亚洲系列中文字幕| 99在线视频影院| 5566av亚洲| 久久亚洲国产| 国产精品wwwww| 91在线小视频| 国产一级二级三级视频| 51精品久久久久久久蜜臀| 久久精品蜜桃| 4438全国亚洲精品在线观看视频| 视频亚洲一区二区| 在线国产精品网| 理论片日本一区| 一区二区三区伦理片| 精品日本高清在线播放 | 在线不卡一区| 亚洲美女搞黄| 日韩成人午夜电影| www.久久av| 欧美午夜电影在线| 欧美少妇另类| 国产91精品网站| 香蕉久久夜色精品国产使用方法| 97视频在线免费| 成人国产视频在线观看| 欧美黄色一区二区三区| 91精品国产91综合久久蜜臀| 日本视频在线播放| 成人h猎奇视频网站| 国产精品久久久久久麻豆一区软件| 亚洲狼人综合干| 日本一区二区三区高清不卡 | 国产99在线| 久久免费99精品久久久久久| 99精品视频免费| 欧洲一级黄色片| 日本韩国一区二区三区| 国产精品久久一区二区三区不卡| 人人爽久久涩噜噜噜网站| 国产成人精品免费视| 韩国日本美国免费毛片| 久久精品欧美一区二区三区不卡 | 男人久久天堂| 久久国产精品久久| 性伦欧美刺激片在线观看| 99久久久无码国产精品性| 色婷婷激情综合| 日本三级在线视频| 91精品久久久久久久| 中文字幕一区二区av| 久久无码专区国产精品s| 亚洲成人资源在线| 免费黄色在线视频网站| 国产精品丝袜高跟| 欧美午夜视频| 亚洲自拍偷拍一区二区| 欧美日韩一区三区四区| 18视频在线观看| 久久综合久久久| 蜜桃视频免费观看一区| 国产这里有精品| 国产丝袜一区视频在线观看 | 国产精品久久精品视| 麻豆久久精品| 天天天天天天天天操| 亚洲第一男人av| 91国内外精品自在线播放| 桥本有菜av在线| a亚洲天堂av| 一区二区小视频| 欧美激情视频播放| 精品国产一级毛片| 欧美体内she精高潮| 欧美性极品xxxx做受| 日本不卡在线| 国产精品免费一区二区三区观看| 日韩国产欧美在线视频| 久久久精品视频免费观看| 亚洲精品视频在线播放| 成人网av.com/| 欧美牲交a欧美牲交aⅴ免费真| 中文字幕在线不卡一区二区三区| 日韩一区二区三区在线观看视频| 国产精品成人av性教育| 欧美女人交a| 亚洲AV成人无码网站天堂久久| 337p日本欧洲亚洲大胆精品| 日本精品另类| 日韩小视频在线播放| 亚洲欧洲性图库| 日本中文字幕电影在线观看 | 电影91久久久| 男女激情无遮挡|