Struts2+JQuery+JSON实现AJAX
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Struts2 + JQuery + JSON实现AJAX
网上关于这方面的资料也不少,但多半是struts1的,在Struts2中使用JSON 可以更容易实现数据的异步传输。
先做好准备工作:
1.Struts2相关lib, 注意将struts2 lib下面的以json开头的包也加入到工程。
2.JSON Plugin,它可以将Struts2 Action中的结果直接返回为JSON。下载地址:
/files/jsonplugin-0.34.jar(支持struts2.1.6及以上版本)。
3.JQuery,JS的一个lib. 下载地址:(最新版本为1.3.2)。
准备工作都做好之后,我们可以开始了。建一个WEB工程,把相关的包加入到工程。我们需要做的就是三件事:
一、准备一个JSP页面用于提交ajax请求,这里我使用了JQuery的$.getJSON(url,params,function callback(data))函数提交ajax请求到指定url,并且携带参数params,最后用一个回调函数callback处理请求返回结果data;
二、一个处理请求的Action类,并在struts.xml文件中做相应配置:写一个action类处理ajax请求数据,并将返回结果封装成一个JSONObject对象返回给请求页面。同时在struts.xml中配置对应action,指明其返回类型为json 并使其package的extends为json-default,并将要返回请求页面的数据放在名为root的param中,如result。
三、接受请求返回结果:使用JS的eval方法将返回结果data转换成JSON 对象,并处理返回结果。
具体参见以下代码:
// login.jsp 使用getJSON方法提交ajax请求,并处理请求返回结果。注意请求的url为login.html这是因为我将struts2.preperties中的
struts.action.extension改成了htm,默认为action。l
Html代码
1.<%@ page language="java"contentType="text/html; charset=UTF-8"
2.pageEncoding="UTF-8"%>
3.<%@ taglib uri="/struts-tags"prefix="s"%>
4.
"/TR/html4/loose.dtd">
5.
6.
7.
8.
9.
10.
11.//*************************************************准备过程
12.$(document).ready(function(){
13. $("#login").click(function(){
14. login();
15. });
16.});
17.//*************************************************进入设置
18.function login(){
19. var url = "login.html";
20. var params = {"user.logName":$("#name").attr("value"),"user
.password":$("#password").attr("value")};
21.//*****************************************回滚输出
22. $.getJSON(url,params,function callback(data){
23. // convert to json object
24. var user = eval("("+data+")");
25. $("#result").each(function(){
26. $(this).html('welcome ,' + );
27. });
28. });
29. }
30.
31.
32.
33.
34.