寒江雪
BlogJava
首頁
新隨筆
聯(lián)系
聚合
管理
posts - 8, comments - 174, trackbacks - 0
struts 2.0 + 原始 AJAX + XML
實現(xiàn)邏輯:
???? 實現(xiàn)user對象的select、delete,動態(tài)的將數(shù)據(jù)更新到表格中。
?????select: 服務(wù)端返回xml數(shù)據(jù),在頁面進行數(shù)據(jù)顯示。
?????delete :服務(wù)端將刪除信息以xml格式返回,包含刪除狀態(tài)和刪除信息。
實現(xiàn)技術(shù):
?????????struts 2.0 + AJAX + XML
主要文件:
?????????index.jsp????? user.java(數(shù)據(jù)模型)?????? UserAction.java(業(yè)務(wù)邏輯)?? struts.xml(struts2.0配置文件)
index.jsp頁面:
<%
@?page?language
=
"
java
"
?pageEncoding
=
"
UTF-8
"
%>
<%
????String?path?
=
?request.getContextPath();
????String?basePath?
=
?request.getScheme()?
+
?
"
://
"
????????????
+
?request.getServerName()?
+
?
"
:
"
?
+
?request.getServerPort()
????????????
+
?path?
+
?
"
/
"
;
%>
<!
DOCTYPE?HTML?PUBLIC?
"
-//W3C//DTD?HTML?4.01?Transitional//EN
"
>
<
html
>
????
<
head
>
????????
<
base?href
=
"
<%=basePath%>
"
>
????????
<
title
>
test?javascript
</
title
>
????
</
head
>
????
<
script?defer
=
"
defer
"
>
????
????????var?xmlHttp;???????
//
XMLHTTP對象
????????var?deleteRowId;???
//
刪除數(shù)據(jù)所在的行
????????
//
url:訪問的URL??afterMothod:請求返回時所調(diào)用的方法(回調(diào)方法)
????????function?showHint(url,afterMothod)?
{
????????????
try
{
????????????????xmlHttp?
=
?GetXmlHttpObject(afterMothod);
????????????????xmlHttp.open(
"
GET
"
,url,
false
);
????????????????xmlHttp.send(
null
);
????????????}
catch
(e)
{
????????????????alert(e);
????????????}
????????}
????????
????????
//
創(chuàng)建XMLHTTP對象
????????function?GetXmlHttpObject(handler)?
{
????????????var?objXmlHttp?
=
?
null
;
????????????
if
?(navigator.userAgent.indexOf(
"
Opera
"
)?
>=
?
0
)?
{
????????????????alert(
"
This?example?doesn't?work?in?Opera
"
);
????????????????
return
;
????????????}
????????????
if
?(navigator.userAgent.indexOf(
"
MSIE
"
)?
>=
?
0
)?
{
????????????????var?strName?
=
?
"
Msxml2.XMLHTTP
"
;
????????????????
if
?(navigator.appVersion.indexOf(
"
MSIE?5.5
"
)?
>=
?
0
)?
{
????????????????????strName?
=
?
"
Microsoft.XMLHTTP
"
;
????????????????}
????????????????
try
?
{
????????????????????objXmlHttp?
=
?
new
?ActiveXObject(strName);
????????????????????objXmlHttp.onreadystatechange?
=
?handler;
????????????????????
return
?objXmlHttp;
????????????????}
????????????????
catch
?(e)?
{
????????????????????alert(
"
Error.?Scripting?for?ActiveX?might?be?disabled
"
);
????????????????????
return
;
????????????????}
????????????}
????????????
if
?(navigator.userAgent.indexOf(
"
Mozilla
"
)?
>=
?
0
)?
{
????????????????objXmlHttp?
=
?
new
?XMLHttpRequest();
????????????????objXmlHttp.onload?
=
?handler;
????????????????objXmlHttp.onerror?
=
?handler;
????????????????
return
?objXmlHttp;
????????????}
????????}
????????
//
刷新數(shù)據(jù)
????????function?flush()?
{
????????????
try
{
????????????????
if
?(xmlHttp.readyState?
==
?
4
?
||
?xmlHttp.readyState?
==
?
"
complete
"
)?
{
????????????????????var?xmlDoc?
=
?
new
?ActiveXObject(
"
Microsoft.XMLDOM
"
);
????????????????????xmlDoc.async
=
false
;
????????????????????xmlDoc.loadXML(xmlHttp.responseText)??
????????????????
????????????????????
//
返回錯誤代碼
????????????????????
//
var?error?=?xmlDoc.parseError.errorCode;
????????????????????
//
alert(error?xmlDoc.parseError.reason:"XML格式正確");
????????????????????
????????????????????var?users
=
xmlDoc.getElementsByTagName(
"
user
"
);
????????????????????clearTable(userTable);
????????????????????
for
(var?i
=
0
;i
<
users.length;i
++
)
{
????????????????????????var?userRow
=
userTable.insertRow();
????????????????????????var?rowId
=
userRow.rowIndex;
????????????????????????
????????????????????????var?user
=
users[i];
????????????????????????var?userId
=
userRow.insertCell();
????????????????????????userId.innerHTML?
=
?user.getAttribute(
"
userId
"
);
????????????????????????var?userName
=
userRow.insertCell();
????????????????????????userName.innerHTML
=
user.getAttribute(
"
userName
"
);
????????????????????????var?userTel
=
userRow.insertCell();
????????????????????????userTel.innerHTML
=
user.getAttribute(
"
userTel
"
);
????????????????????????var?userOp
=
userRow.insertCell();
????????????????????????var?deleteUrl
=
"
user!delete.action?user.userId=
"
+
user.getAttribute(
"
userId
"
);
????????????????????????userOp.innerHTML
=
"
<a?href=javascript:deleteRowId=
"
+
rowId
+
"
;showHint('
"
+
deleteUrl
+
"
',drop);>刪除</a>
"
;
????????????????????}
????????????????}
????????????}
catch
(e)
{
????????????????alert(e.description);
????????????}
????????}
????????
//
刪除數(shù)據(jù)
????????function?drop()
{
????????????
????????????
if
?(xmlHttp.readyState?
==
?
4
?
||
?xmlHttp.readyState?
==
?
"
complete
"
)?
{
????????????????var?xmlDoc?
=
?
new
?ActiveXObject(
"
Microsoft.XMLDOM
"
);
????????????????xmlDoc.async
=
false
;
????????????????xmlDoc.loadXML(xmlHttp.responseText);
????????????????var?msg
=
xmlDoc.getElementsByTagName(
"
msg
"
)[
0
];
????????????????
????????????????
if
(msg.getAttribute(
"
isSuccess
"
)
==
"
false
"
)
{
????????????????????alert(msg.getAttribute(
"
msgString
"
));
????????????????}
else
{
????????????????????userTable.deleteRow(deleteRowId);
????????????????????alert(msg.getAttribute(
"
msgString
"
));
????????????????}
????????????}
????????}
????????
????????
//
清空表數(shù)據(jù)
????????function?clearTable(opTable)
{
????????????
????????????var?size
=
opTable.rows.length;
????????????
for
(var?i
=
2
;i
<
size;i
++
)
{
????????????????opTable.deleteRow(
2
);
????????????}
????????????
????????}
????????????
????
</
script
>
????
<
body
>
????????
<
center
>
????????????
<
h3
>
????????????????用戶列表
????????????
</
h3
>
????????????
<
br
>
????????????
<
table?id
=
"
userTable
"
?title
=
"
用戶列表
"
?width
=
"
50%
"
>
????????????????
<
tbody
>
????????????????????
<
tr?bgcolor
=
"
#54821f
"
>
????????????????????????
<
td?width
=
"
15%
"
>
????????????????????????????ID
????????????????????????
</
td
>
????????????????????????
<
td?width
=
"
15%
"
>
????????????????????????????姓名
????????????????????????
</
td
>
????????????????????????
<
td?width
=
"
20%
"
>
????????????????????????????電話
????????????????????????
</
td
>
????????????????????????
<
td?width
=
"
5%
"
>
????????????????????????????操作
????????????????????????
</
td
>
????????????????????
<
tr
>
????????????????
</
tbody
>
????????????
</
table
>
????????????
<
br
>
????????????
<
br
>
????????????
<
br
>
????????????
<
button?onclick
=
"
showHint('user!list.action',flush);
"
>
????????????????刷新
????????????
</
button
>
????????
</
center
>
????
</
body
>
</
html
>
user.java
package
?com.wen.test;
public
?
class
?User?
{
????
private
?String?userId;
????
private
?String?userName;
????
private
?String?userTel;
????
public
?String?getUserId()?
{
????????
return
?userId;
????}
????
public
?
void
?setUserId(String?userId)?
{
????????
this
.userId?
=
?userId;
????}
????
public
?String?getUserName()?
{
????????
return
?userName;
????}
????
public
?
void
?setUserName(String?userName)?
{
????????
this
.userName?
=
?userName;
????}
????
public
?String?getUserTel()?
{
????????
return
?userTel;
????}
????
public
?
void
?setUserTel(String?userTel)?
{
????????
this
.userTel?
=
?userTel;
????}
}
UserAction.java
package
?com.wen.test;
import
?java.util.List;
import
?java.util.Vector;
import
?com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings(
"
serial
"
)
public
?
class
?UserAction?
extends
?ActionSupport
{
????
private
?User?user;
????
private
?List
<
User
>
?userList;
????
private
?List
<
String
>
?msgList;
????
????
public
?String?flush()
{
????????
return
?SUCCESS;
????}
????
????
public
?String?delete()
{
????????
????????
int
?id
=
Integer.parseInt(user.getUserId());
????????msgList
=
new
?Vector
<
String
>
();
????????
if
(id
<
0
||
id
>
3
)
{
????????????msgList.add(
"
false
"
);
????????????msgList.add(
"
刪除ID為:
"
+
id
+
"
用戶失敗!!
"
);
????????}
else
{
????????????
//
做刪除操作
????????????msgList.add(
"
true
"
);
????????????msgList.add(
"
刪除ID為:
"
+
id
+
"
用戶成功!!
"
);
????????}
????????
return
?SUCCESS;
????}
????
????
public
?String?list()
{
????????
????????userList
=
new
?Vector
<
User
>
();
????????
????????user
=
new
?User();
????????user.setUserId(
"
0
"
);
????????user.setUserName(
"
wen
"
);
????????user.setUserTel(
"
029-82507114
"
);
????????userList.add(user);
????????
????????user
=
new
?User();
????????user.setUserId(
"
1
"
);
????????user.setUserName(
"
peng
"
);
????????user.setUserTel(
"
029-34650060
"
);
????????userList.add(user);
????????
????????user
=
new
?User();
????????user.setUserId(
"
2
"
);
????????user.setUserName(
"
tao
"
);
????????user.setUserTel(
"
13570854091
"
);
????????userList.add(user);
????????
????????user
=
new
?User();
????????user.setUserId(
"
2
"
);
????????user.setUserName(
"
tao
"
);
????????user.setUserTel(
"
13570854091
"
);
????????userList.add(user);
????????
????????user
=
new
?User();
????????user.setUserId(
"
2
"
);
????????user.setUserName(
"
tao
"
);
????????user.setUserTel(
"
13570854091
"
);
????????userList.add(user);
????????
????????user
=
new
?User();
????????user.setUserId(
"
2
"
);
????????user.setUserName(
"
tao
"
);
????????user.setUserTel(
"
13570854091
"
);
????????userList.add(user);
????????
????????user
=
new
?User();
????????user.setUserId(
"
2
"
);
????????user.setUserName(
"
tao
"
);
????????user.setUserTel(
"
13570854091
"
);
????????userList.add(user);
????????
????????
return
?SUCCESS;
????}
????
????
public
?User?getUser()?
{
????????
return
?user;
????}
????
public
?
void
?setUser(User?user)?
{
????????
this
.user?
=
?user;
????}
????
public
?List?getMsgList()?
{
????????
return
?msgList;
????}
????
public
?List?getUserList()?
{
????????
return
?userList;
????}
}
struts.xml
<?
xml?version="1.0"?encoding="UTF-8"
?>
<!
DOCTYPE?struts?PUBLIC
????????"-//Apache?Software?Foundation//DTD?Struts?Configuration?2.0//EN"
????????"http://struts.apache.org/dtds/struts-2.0.dtd"
>
<
struts
>
????
<
constant?
name
="struts.enable.DynamicMethodInvocation"
????????value
="true"
?
/>
????
<
constant?
name
="struts.devMode"
?value
="true"
?
/>
????
<
package?
name
="users"
?extends
="struts-default"
>
????????
<
result-types
>
????????????
<
result-type?
name
="userInfo"
?class
="com.wen.test.User"
?
/>
????????????
<
result-type?
name
="userList"
?class
="java.util.List"
?
/>
????????????
<
result-type?
name
="msgList"
?class
="java.util.List"
?
/>
????????
</
result-types
>
????????
<
action?
name
="user"
?class
="com.wen.test.UserAction"
>
????????????
<
result
>
/result.jsp
</
result
>
????????
</
action
>
????
</
package
>
</
struts
>
END
????希望對初學(xué)著有所幫助,歡迎大家一起探討java 問題!!
posted on 2007-08-15 13:05
月月鳥
閱讀(1835)
評論(9)
編輯
收藏
所屬分類:
ajax
FeedBack:
#
re: struts 2.0 + 原始 AJAX + XML
2007-08-15 17:18 |
編程、設(shè)計是職業(yè)更是愛好
不錯,大道至簡。對于WEB開發(fā),濫用的Tag是災(zāi)難。
回復(fù)
更多評論
#
re: struts 2.0 + 原始 AJAX + XML
2009-02-12 23:09 |
繼文
上面的樓主:你上面的例子能正常測試嗎?我怎么得到action中返回的一個頁面呢,希望在解釋一下。
回復(fù)
更多評論
#
re: struts 2.0 + 原始 AJAX + XML
2011-10-19 12:22 |
ww
最突出的功能自然是調(diào)試(Debug),可以對Java代碼,JavaScript,JQuery,Ajax等技術(shù)進行調(diào)試。 其他編輯功能拋開不看,這點遠勝Eclipse。 首先查看Map類型的對象,如果實現(xiàn)類采用的是哈希映射,則會自動過濾空的Entry實例。 不像Eclipse,只能在默認的toString()方法中尋找你所要的key。 其次,需要動態(tài)Evaluate一個表達式的值,比如我得到了一個類的實例,但是并不知曉它的API,可以通過Code Completion點出它所支持的方法,這點Eclipse無法比擬。 最后,在多線程調(diào)試的情況下,Log on console的功能可以幫你檢查多線程執(zhí)行的情況。 前面已經(jīng)說過了IDEA所提倡的是智能編碼,是減少程序員的工作,那么IDEA具體又有哪些值得推崇呢?總結(jié)以下25點,希望能有個比較全面的介紹。 1. 智能的選取。在很多時候我們要選取某個方法,或某個循環(huán)或想一步一步從一個變量到整個類慢慢擴充著選取,IDEA就提供這種基于語法的選擇,在默認設(shè)置中Ctrl+w,可以實現(xiàn)選取范圍的不斷擴充,這種方式在重構(gòu)的時候尤其顯得方便。 2. 豐富的導(dǎo)航模式。IDEA提供了豐富的導(dǎo)航查看模式,例如ctrl+e顯示最近打開過的文件,ctrl+n顯示你希望顯示的類名查找框 (該框同樣有智能補充功能,當你輸入字母后IDEA將顯示所有候選類名)。在最基本的project試圖中,你還可以選擇多種的試圖方式。 3. 歷史記錄功能。不用通過版本管理服務(wù)器,單純的IDEA就可以查看任何工程中文件的歷史記錄,但版本恢復(fù)時你可以很容易的將其恢復(fù)。 4. JUnit的完美支持。 5. 對重構(gòu)的優(yōu)越支持。IDEA是所有IDE中最早支持重構(gòu)的,其優(yōu)秀的重構(gòu)能力一直是其主要賣點之一。 6. 編碼輔助。java規(guī)范中提倡的tostring(),hashcode(),equals(),以及所有的get/set方法,你可以不用進行任何的輸入就可以實現(xiàn)代碼的自動生成,從而把你從無聊的基本方法編碼中解放出來。 7. 靈活的排版功能。基本所有的IDE都有重排版功能,但僅有IDEA的是人性的,因為她支持排版模式的定制,你可以根據(jù)不同的項目要求采用不同的排版方式。 8. XML的完美支持。 9. 簡潔易用的GUI界面。 10. 與文件系統(tǒng)自動同步。當你最小化IDEA,直接對文件進行編輯之后,重新打開IDEA后IDEA將自動的完成文件的更新,而不用重新導(dǎo)入工程或刷新工程。 11. 自定義的快捷鍵。強大的快捷鍵設(shè)置,基本可以讓程序員離開鼠標工作。 12. 動態(tài)語法檢測。任何不符合java規(guī)范,自己預(yù)定義的規(guī)范,累贅都將在頁面中加亮顯示。 13. 代碼檢查。對代碼進行自動分析,檢測不符合規(guī)范的,存在風險的代碼,并加亮顯示。 14. 對JSP的完全支持。不需要任何的插件,完全支持JSP。 15. 智能編輯。代碼輸入過程中,自動補充方法或類。 16. EJB支持。不需要任何插件完全支持EJB(6.0 支持ejb3.0) 17. 列編輯模式。用過UtralEdit的肯定對其的列編輯模式贊賞不已,因為她減少了很多很多的無聊重復(fù)工作,而IDEA完全支持該模式,從而更加提高了編碼效率。 18. 智能模板。預(yù)置模板可以讓你把經(jīng)常用到的方法編輯進模板,使用時你只用輸入簡單的幾個字母就可以完成全部代碼的編寫。例如使用比較高的public static void main(String[] args){}你可以在模板中預(yù)設(shè)pm為該方法,輸入時你只要輸入pm再按代碼輔助鍵,IDEA將完成代碼的自動輸入。 19. 完美的自動代碼完成。智能檢查類中方法,當發(fā)現(xiàn)方法名只有一個時自動完成代碼輸入,從而減少剩下代碼的編寫工作。 20. Ant 支持。不需要任何的第三方插件。 21. 不使用代碼檢查。自動檢查代碼中不使用的代碼,并給出提示,從而使代碼更高效。 22. 智能代碼。自動檢查代碼,發(fā)現(xiàn)與預(yù)置規(guī)范有出入的代碼給出提示,若程序員同意修改自動完成修改。例如代碼:String str = "Hello Intellij " + "IDEA"; IDEA將給出優(yōu)化提示,若程序員同意修改IDEA將自動將代碼修改為:String str = "Hello Intellij IDEA"; 23. 正則表達的查找和替換功能。查找替代支持正則表達,從而提高效率。 24. JavaDoc預(yù)覽支持。支持JavaDoc的預(yù)覽功能,在JavaDoc代碼中ctrl+q顯示JavaDoc的結(jié)果,從而提高doc文檔的質(zhì)量。 25. 程序員意圖支持。當程序員編碼時IDEA時時檢測你的意圖,或提供建議,或直接幫你完成代碼。
回復(fù)
更多評論
#
re: struts 2.0 + 原始 AJAX + XML[未登錄]
2011-10-27 17:46 |
pp
http://www.aqee.net/docs/draw-a-stickman/
回復(fù)
更多評論
#
re: struts 2.0 + 原始 AJAX + XML[未登錄]
2011-11-02 10:55 |
pp
2011-9-29 2
2011-10-10 0.5
2011-10-11 0.5
2011-10-12 2
2011-10-13 0.5
2011-10-17 0.5
2011-10-18 1
2011-10-19 3
2011-10-20 1
2011-10-23 12
2011-10-24 0.5
2011-10-25 1
2011-10-29 7.5
回復(fù)
更多評論
#
re: struts 2.0 + 原始 AJAX + XML[未登錄]
2011-11-03 09:19 |
qq
2011/10/12 2
2011/10/17 0.5
2011/10/18 1
2011/10/19 0.5
2011/10/20 1
2011/10/23 11
2011/10/25 1
2011/10/29 7.5
回復(fù)
更多評論
#
re: struts 2.0 + 原始 AJAX + XML
2012-02-18 08:22 |
月月鳥
http://blog.csdn.net/ocelight/article/details/4510192
回復(fù)
更多評論
#
re: struts 2.0 + 原始 AJAX + XML
2012-02-18 08:26 |
月月鳥
http://topic.csdn.net/u/20110113/10/801168dd-a390-40cb-b381-53021e3d4e4e.html?26658
回復(fù)
更多評論
#
re: struts 2.0 + 原始 AJAX + XML[未登錄]
2013-05-30 11:05 |
bb
http://blog.csdn.net/lihongzhai/article/details/2074031
回復(fù)
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
struts2.0 + ajax + xml (附源碼)
struts 2.0 + 原始 AJAX + XML
Copyright ©2025 月月鳥 Powered By:
博客園
模板提供:
滬江博客
<
2011年10月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(5)
給我留言
查看公開留言
查看私人留言
隨筆分類
(8)
ajax(2)
eclipse
flex(1)
hibernate
ibatis
J2EE(1)
J2SE(1)
javascript
jsf
spring
struts
webwork
其他(3)
報表(report)
隨筆檔案
(8)
2007年8月 (8)
文章分類
(1)
flex
其他(1)
新技術(shù)
文章檔案
(1)
2012年4月 (1)
其他
ext 中文文檔中心
javascirpt封裝庫API中文文檔
Flex中文網(wǎng)站
ORM Tool
中間件技術(shù)
娛樂
技術(shù)
dhtml學(xué)習
ext中文學(xué)習中心
Flex程序示例
prototype1.5.0中文API在線版
SpringSide---企業(yè)應(yīng)用的開源構(gòu)件庫
搜索
積分與排名
積分 - 116563
排名 - 503
最新隨筆
1.?PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
2.?收藏微軟面試智力題 (附答案)
3.?struts2.0 + ajax + xml (附源碼)
4.?經(jīng)典收藏----和大家一同分享
5.?嘗試Flex3 令人振奮的新功能——framework持久化緩存
6.?LOG4J 之經(jīng)典篇
7.?swing 選擇日期控件
8.?探討J2EE開發(fā)框架-----高手留言
9.?struts 2.0 + 原始 AJAX + XML
最新評論
1.?re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
評論內(nèi)容較長,點擊標題查看
--月月鳥
2.?re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
評論內(nèi)容較長,點擊標題查看
--月月鳥
3.?re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
評論內(nèi)容較長,點擊標題查看
--pt
4.?re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
評論內(nèi)容較長,點擊標題查看
--pt
5.?re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
評論內(nèi)容較長,點擊標題查看
--pt
6.?re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
評論內(nèi)容較長,點擊標題查看
--pt
7.?re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
黃金時時彩全能計劃王
黃金時時彩全能計劃王
--pt
8.?re: swing 選擇日期控件
@交口稱贊 郵箱arvinsw521403@163.com
--zhangyi
9.?re: swing 選擇日期控件
@交口稱贊 求下拉出時間的代碼!感激不盡
--zhangyi
10.?re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
評論內(nèi)容較長,點擊標題查看
--pt
評論排行榜
1.?收藏微軟面試智力題 (附答案)(104)
2.?struts2.0 + ajax + xml (附源碼)(17)
3.?swing 選擇日期控件(13)
4.?探討J2EE開發(fā)框架-----高手留言(10)
5.?struts 2.0 + 原始 AJAX + XML(9)
6.?LOG4J 之經(jīng)典篇(7)
7.?嘗試Flex3 令人振奮的新功能——framework持久化緩存(3)
8.?經(jīng)典收藏----和大家一同分享(1)
主站蜘蛛池模板:
又黄又大的激情视频在线观看免费视频社区在线
|
亚洲AV成人一区二区三区观看
|
亚洲国产视频网站
|
亚洲资源在线视频
|
久久久久亚洲AV无码观看
|
亚洲AV日韩精品久久久久久
|
成人无遮挡裸免费视频在线观看
|
四虎在线最新永久免费
|
67pao强力打造高清免费
|
亚洲香蕉免费有线视频
|
国产一卡二卡四卡免费
|
午夜国产精品免费观看
|
最近2019中文免费字幕
|
永久中文字幕免费视频网站
|
小小影视日本动漫观看免费
|
四虎影视在线永久免费看黄
|
亚洲精品久久久www
|
亚洲综合精品网站在线观看
|
亚洲中文字幕无码一久久区
|
亚洲AV无码AV男人的天堂
|
亚洲高清美女一区二区三区
|
亚洲一线产区二线产区精华
|
亚洲一卡一卡二新区无人区
|
蜜桃传媒一区二区亚洲AV
|
成人精品综合免费视频
|
国产成人无码区免费网站
|
91高清免费国产自产拍2021
|
日韩欧毛片免费视频
|
在线毛片片免费观看
|
**一级一级毛片免费观看
|
一个人免费观看www视频在线
|
日韩免费高清播放器
|
67pao强力打造高清免费
|
天天干在线免费视频
|
亚洲人成网站观看在线播放
|
国产日韩亚洲大尺度高清
|
亚洲第一页在线播放
|
亚洲妇女无套内射精
|
4hu四虎免费影院www
|
久久精品人成免费
|
国产精品免费观看久久
|