寒江雪
如果人生最坏只是死亡,生活中怎么会有面对不了的困难!!!
BlogJava
首页
新随笔
联系
聚合
管理
posts - 8, comments - 78, trackbacks - 0
struts 2.0 + 原始 AJAX + XML
实现逻辑:
实现user对象的select、delete,动态的将数据更新到表格中。
select: 服务端返回xml数据,在页面进行数据显示。
delete :服务端将删除信息以xml格式返回,包含删除状态和删除信息。
实现技术:
struts 2.0 + AJAX + XML
主要文件:
index.jsp user.java(数据模型) UserAction.java(业务逻辑) 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;
//
删除数据所在的行
//
url:访问的URL afterMothod:请求返回时所调用的方法(回调方法)
function showHint(url,afterMothod)
{
try
{
xmlHttp
=
GetXmlHttpObject(afterMothod);
xmlHttp.open(
"
GET
"
,url,
false
);
xmlHttp.send(
null
);
}
catch
(e)
{
alert(e);
}
}
//
创建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;
}
}
//
刷新数据
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);
}
}
//
删除数据
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
"
));
}
}
}
//
清空表数据
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
希望对初学着有所帮助,欢迎大家一起探讨java 问题!!
posted on 2007-08-15 13:05
月月鸟
阅读(864)
评论(1)
编辑
收藏
所属分类:
ajax
FeedBack:
#
re: struts 2.0 + 原始 AJAX + XML
2007-08-15 17:18 |
编程、设计是职业更是爱好
不错,大道至简。对于WEB开发,滥用的Tag是灾难。
回复
更多评论
IT新闻
新用户注册
刷新评论列表
标题
姓名
主页
验证码
*
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2007-08-15 17:17 编辑过
相关文章:
struts2.0 + ajax + xml (附源码)
struts 2.0 + 原始 AJAX + XML
相关链接:
网站导航:
博客园
BlogJava
博客生活
IT博客网
C++博客
PHP博客
博客园社区
管理博客
教师博客
天文博客
汽车博客
足球博客
股票博客
电子博客
管理
<
2007年8月
>
日
一
二
三
四
五
六
29
30
31
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
6
7
8
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔分类
(8)
ajax(2)
eclipse
flex(1)
hibernate
ibatis