废话不多说,直接示例:
首先当然要搭建好struts2的开发环境,为了使用json数据格式,要导入struts2的一个json插件包,
我用的是struts2.1.8 其解压后的在解压文件的lib目录下可找到这个json插件包struts2-json-plugin-2.1.8.1.jar
我的目录结构
src--
|---com.sun.jsondemo(package)
| |----JsonPluginAction.java
|---struts.xml
WebRoot--
|---js(folder)
| |----jquery-1.4.js
|---WEB-INF
|----lib(项目所需jar包)
|----page
|---book.jsp
JsonPluginAction.java:
package com.sun.jsondemo;
import java.util.ArrayList;
import java.util.List;
import org.apache.struts2.json.annotations.JSON;
import com.opensymphony.xwork2.ActionSupport;
public class JsonPluginAction extends ActionSupport {
/**
*
*/ private static final long serialVersionUID = 1L;
private int bookid;
private String title;
private double price;
private List<String> comments; //secret1 和 secret2 没有提供setter和getter方法,不会返回为json格式
private transient String secret1; //这个关键字表示 这个field不会持久化
private String secret2; @JSON(name="ISBN") //可以通过注解方式改变json对象中属性的名称
public int getBookid() { return bookid; }
public void setBookid(int bookid) { this.bookid = bookid; }
public String getTitle() { return title; }
public void setTitle(String title) { this.title = title; }
public double getPrice() { return price; }
public void setPrice(double price) { this.price = price; }
public List<String> getComments() { return comments; }
public void setComments(List<String> comments) { this.comments = comments; }
@Override
//我们在这里简单的给定一些值,实际当然从页面动态获取
public String execute() throws Exception {
bookid = 111111;
title = "struts-json-jquery integration";
price = 99;
comments = new ArrayList<String>(3);
comments.add("It's no bad");
comments.add("WOW");
comments.add("No comment!");
secret1 = "You can't see me";
secret2 = "I am invisible";
return SUCCESS;
}
}
struts2.xml:
<struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> <constant name="struts.ui.theme" value="simple"></constant>
<!-- json-default 定义在struts2的json插件包中,它包括了struts-default --> <package name="demo" namespace="/jsondemo" extends="json-default"> <action name="JsonPlugin" class="com.sun.jsondemo.JsonPluginAction"> <!-- 这里type为json,表示action中的属性将以json对象的格式输出-->
<result type="json"/> </action> <action name="GetJsonData"> <result type="dispatcher">/WEB-INF/page/book.jsp</result> </action> </package> </struts>
如果我们到此为止,通过浏览器访问http://localhost:8080/struts2demo/jsondemo/JsonPlugin.action
浏览器则会提示下载文件 把文件打开后里面就是json的数据格式
{"ISBN":111111,"comments":["It's no bad!","WOW!","No comment!"],"price":99,"title":"struts-json-jquery integration"}
这样肯定是不能干活的,但是到这里也算是成功的一半了。下面来个book.jsp通过jquery中的$.getJSON()函数:
<html>
<head>
<title>My JSP 'global.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.4.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#showbook").click( function() {
var basepath = $("#basepath").val();
var detail = $("#detail");
$.getJSON(basepath + "/jsondemo/JsonPlugin.action",
{t:new Date()},
function(data) {
var isbn = data.ISBN;
var title = data.title;
alert(title);
var price = data.price;
detail.append("ISBN: " + isbn + "<br/>" +
"Title: " + title + "<br/>" +
"Price: " + price + "<br/>");
detail.append("Comments:" + "<br/>" + "<hr>" + "<br/>");
var comments = data.comments;
for(var i = 0; i < comments.length; i++) {
detail.append("<p>" + "#" + (i+1) + " " + comments[i] + "</p><br>");
}
});
});
});
</script>
</head>
<body>
<input id="basepath" type="hidden" value="${pageContext.request.contextPath}">
<input id="showbook" type="button" value="Retrieve Book">
<div id="detail"></div>
</body>
</html>
完成了,到这里我们通过http://localhost:8080/struts2demo/jsondemo/GetJsonData.action就可以访问到
book.jsp页面,点击button就能在页面上看到反回的数据,这里其实主要涉及到json数据的解析。我对jquery也刚刚
开始研究,所以这里写的js代码肯定不够优美....
呵呵,如果有不正确的地方 请大家指出!
分享到:
相关推荐
struts2+jQuery+json实现AJAX.zip
Struts2和jQuery是两种非常流行的开源技术,它们在Web开发中有着广泛的应用。Struts2作为MVC框架,主要用于处理后端业务逻辑,而jQuery则是一个强大的JavaScript库,简化了前端DOM操作、事件处理以及AJAX交互。在这...
### Struts2 + jQuery + JSON 实现Ajax 在现代Web开发中,Ajax技术因其能够实现网页的局部刷新而被广泛采用。本篇文章介绍如何利用Struts2框架结合jQuery与JSON来构建一个简单的Ajax功能。 #### 一、环境搭建 1. ...
Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON
总的来说,Struts2+Jquery+Ajax的组合使得开发者能够构建出交互性强、响应速度快的Web应用。通过理解MVC模式、熟练掌握Struts2的配置和Action处理、灵活运用Jquery和Ajax,可以大大提高开发效率,提升用户使用体验。...
新struts2+jQuery所需包.rar\ 以及老版struts2所需jar包 新Struts2与老版struts2的区别如下: 配置web.xml文件时过滤器配置的不同, <filter-class>org.apache.struts2.dispatcher.FilterDispatcher, 新版本中都...
Struts2和jQuery是两种非常重要的Web开发技术。Struts2是Java企业级应用中广泛使用的MVC(Model-View-Controller)框架,它提供了一种结构化的方式来组织和管理Web应用程序,使得开发者能够更有效地处理请求、控制...
struts2+jquery 整合的jar包
总结起来,"struts2+jquery+json+ajax"的例子展示了如何利用这些技术协同工作,实现一个无刷新的登录界面,提供流畅的用户体验。通过Struts2处理业务逻辑和数据验证,jQuery和Ajax负责前后端的通信,JSON作为数据...
Struts2和jQuery是两种非常重要的Java Web开发技术。Struts2是一个强大的MVC框架,它简化了基于Java的企业级应用程序开发,而jQuery则是一个高效、简洁的JavaScript库,极大地简化了网页动态交互和动画效果的实现。...
struts2+jquerystruts2+jquerystruts2+jquerystruts2+jquerystruts2+jquerystruts2+jquerystruts2+jquerystruts2+jquerystruts2+jquerystruts2+jquerystruts2+jquerystruts2+jquerystruts2+jquerystruts2+jquery
【购物车(struts2+jquery)】是一个典型的Web应用程序示例,主要展示了如何使用Struts2框架与jQuery库来实现动态、交互式的购物车功能。这个项目特别适合那些想要学习或加深对AJAX技术理解的开发者。接下来,我们将...
struts2+jquery+ajax实现验证功能
在IT行业中,构建Web应用程序是常见的任务之一,而Spring、Struts2和JQuery是三个常用的框架和技术,它们各自在不同的层面上发挥作用,共同助力于高效、稳定的开发。本项目"Spring+Struts2+JQuery实现简单的登录功能...
在"Struts2+jQuery+JSON"的组合中,Struts2作为后端框架负责处理业务逻辑和数据管理,它通过JSON格式返回数据给前端。jQuery在前端负责接收这些JSON数据,然后使用其强大的DOM操作功能来更新页面内容,实现无刷新的...
在"Struts2+Jquery+Mysql+20120925"的项目中,我们可以看到这是一个使用上述技术栈构建的系统,可能是一个管理信息系统或者在线服务平台。MySQL是广泛使用的开源关系型数据库管理系统,能够处理大量的数据并提供高效...
在这里,"struts2+jquery无刷新取后台数据"的实现主要是利用Ajax技术,结合Struts2的Action和Result,实现在用户界面上的无刷新交互。 首先,登录功能是Web应用的基础。在Struts2中,我们可以创建一个登录Action类...
……鄙视那些拿HelloWorld或一些入门的东西来赚分的行为。 实现对于用户进行是否存在的验证,如果用户存在,可将用户信息读取进行修改,如果不存在可以进行保存。框架:struts2.1.6+Hibernate3+jquery1.3.2
总的来说,"struts2+jquery+ajax文件异步上传"是一个结合了后端处理和前端交互的文件上传解决方案,提供了良好的用户体验和灵活性。通过MyEclipse这样的集成开发环境,开发者可以方便地构建、调试和部署这样的项目。
Java中:struts2+jQuery+ajax调用(引用) 代码,解析,源码,demo,实例,分析