- 浏览: 238695 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
di1984HIT:
写的不错。
使用JDBC进行批处理 -
huyuran:
...
使用JDBC进行批处理 -
chenbo0928:
[url][/url][img][/img][*]引用 ...
Removing a detached instance -
mousepc:
gklovejava 写道Utility method to ...
eclipse中的get/set功能的一个bug -
gklovejava:
Utility method to take a string ...
eclipse中的get/set功能的一个bug
首先,我的例子是从这里改的:
http://www.blogjava.net/max/archive/2007/06/12/123682.html
他用的json的jar包是别人写的,我用的Jar包是struts提供的struts2-json-plugin-2.1.8.1.jar
用到的jar包在附件中。
public class AjaxAction extends ActionSupport { private static final long serialVersionUID = -5009042081262340542L; private int bookId; private String title; private double price; private List<String> comments; private transient String secret1; private String secret2; @JSON(name = "ISBN") public int getBookId() { return bookId; } public void setBookId(int bookId) { this.bookId = bookId; } public List<String> getComments() { return comments; } public void setComments(List<String> comments) { this.comments = comments; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } @Override public String execute() throws Exception { bookId = 15645912; title = "Max On Java"; price = 0.9999d; 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; } }
以上代码值得注意的是,通过@JSON的JAVA注释(Annotation),我们可以改变JSON结果的属性名称,另外带有transient修饰符与没有Getter方法的字段(field)都不会被串行化为JSON。
struts.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="Struts2_AJAX_DEMO" extends="json-default"> <action name="ajaxAction" class="AjaxAction"> <result type="json" /> </action> </package> </struts>
上面配置文件的“package”元素和以往不同的是,它扩展了“json-default”而不是“struts-default”。“json-default”是在struts-json-plugin.xxx.jar包里的struts-plugin.xml中定义的。
发布运行应用程序,在浏览器中键入:http://found.mshome.net:8888/StrutsAjax/ajaxAction,出现下载文件对话框,原因是JSON插件将HTTP响应(Response)的MIME类型设为“application/json”。把文件ajaxAction下载下来,用记事本打开,内容如下:
{"ISBN":15645912,"comments":["It's no bad!","WOW!","No comment!"],"price":0.9999,"title":"Max On Java"}
对了,我的web.xml中是这样配置的:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
所以访问链接和上面那个人的例子不太一样。
html页面中这样的:大部分内容都和上面那个人的例子一样,只有url不同。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Json.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript"> var bXmlHttpSupport = (typeof XMLHttpRequest != "undefined" || window.ActiveXObject); if (typeof XMLHttpRequest == "undefined" && window.ActiveXObject) { function XMLHttpRequest() { var arrSignatures = [ "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ]; for ( var i = 0; i < arrSignatures.length; i++) { try { var oRequest = new ActiveXObject(arrSignatures[i]); return oRequest; } catch (oError) { /*ignore*/ } } throw new Error("MSXML is not installed on your system."); } } function retrieveBook() { if (bXmlHttpSupport) { var sUrl = 'ajaxAction'; var oRequest = new XMLHttpRequest(); oRequest.onreadystatechange = function() { if (oRequest.readyState == 4) { var oBook = eval('(' + oRequest.responseText + ')'); var bookHolder = document.getElementById('bookHolder'); var sBook = '<p><b>ISBN: </b>' + oBook.ISBN + '</p>'; sBook += ('<p><b>Title: </b>' + oBook.title + '</p>'); sBook += ('<p><b>Price: </b>$' + oBook.price + '</p>'); sBook += ('<b><i>Comments: </i></b><hr/>'); for (i = 0; i < oBook.comments.length; i++) { sBook += ('<p><b>#' + (i + 1) + ' </b>' + oBook.comments[i] + '</p>'); } bookHolder.innerHTML = sBook; } }; oRequest.open('POST', sUrl); oRequest.send(null); } } </script> </head> <body> <input type="button" value="Retrieve Book" onclick="retrieveBook()" /> <div id="bookHolder"></div> </body> </html>
http://found.mshome.net:8888/StrutsAjax/Json.html
自己访问一下你自己的网页试试。
发表评论
-
eclipse中的get/set功能的一个bug
2012-03-08 15:16 4886今天发现一个问题,页面中的值一部分不能传到后台(用的strut ... -
struts2使用jQuery Ajax简单配置
2012-02-20 09:59 1418写的比较简单。 jsp 页面: javascript部分: ... -
struts双层iterator嵌套
2012-02-15 19:14 1949有点乱,没有修改,直接贴的自己的代码,有用到的自己看吧。 ... -
struts2的actionerror,actionmessage,fieldmessage
2011-11-15 18:50 622不知道为什么,把<s:actionError /> ... -
批量checkbox提交问题
2011-10-07 01:48 775<form method="post&q ... -
struts给result添加多个参数问题
2011-09-22 21:41 1183<result name="success&q ... -
There is no Action mapped for namespace /xxx and action name xxxAction
2011-09-21 15:55 1042错误原因查找: 1. 查看你的struts.xml 文件是否 ... -
给struts 的标签s:url加参数
2011-09-05 09:34 836有时候我们需要通过javascript来执行一些action。 ... -
project不能完全删除 提示undo,abort等
2011-09-04 22:00 1194使用struts 2做project的时候,做完例子之后不能删 ... -
struts 2提交集合数据做法
2011-08-30 16:25 930直接用例子说明: 1. JSP页面上的内容: Action ... -
s:fielderror和s:actionerror
2011-08-26 09:48 1377昨天出了个问题,action类的set/get方法都执行 ... -
struts2 使用数组批量提交数据
2011-08-25 12:01 5749首先是数组数据批量显示的问题。即由一个action到一个jsp ... -
struts2的一个action执行两次的问题
2011-08-19 17:11 2836今天做了一个删除action,老是出问题,加了断点测试一下,原 ... -
关于提交时js验证的一个问题
2011-07-21 23:08 715<%@ page language="j ... -
AJAX 连接数据库实例
2011-05-09 23:00 1337本例子连接的是ORACLE数据库。 -
一个ajax例子
2011-05-02 14:23 699<!DOCTYPE HTML PUBLIC &qu ... -
一个ajax例子(用数据库)
2011-04-23 18:38 594就是一个判断用户名是否已经注册的小例子。通过数据库。 -
Ajax动态表格,可适时添加行、删除行、复制行
2011-03-21 16:06 952<!DOCTYPE html PUBLIC &qu ...
相关推荐
介绍struts、ajax如何返回json数据 一首先引入Struts和json所需的jar包。 二编写页面 三编写action类 四Struts配置
利用AJAX传递JSON数组,后台struts2的action接收。 详细代码简单易懂。
Struts+Jquery+Ajax+Json应用实例,前端引入jquery,后台使用struts框架。前端js调用后台action,并将后台返回的json数据进行解析,设置web页面
Struts2之ajax初析的并结合jquery一个例子 Web2.0的随波逐流,Ajax那是大放异彩,Struts2框架自己整合了对Ajax的原生支持(struts 2.1.7+,之前的版本可以通过插件实现),框架的整合只是使得JSON的创建变得异常简单...
通过jquery ajax 在struts2 action 和 jsp之间传递json
使用JQuery传递数据到struts action ,并返回JSON对象数据,在JQuery回调函数解析数据的,Ajax异步处理的小测试
struts2 struts2struts2 struts2 的 ActionAction ActionAction 如何实现和 如何实现和 如何实现和 servletAPI servletAPIservletAPIservletAPIservletAPI servletAPIservletAPIservletAPI的交互
最新Struts2.3.8 + jquery + ajax + json 学会struts+jq+ajax+json只要4步‵‵经过作者的总结超级简单 1. 导入struts2 及json包 asm-3.3.jar asm-commons-3.3.jar asm-tree-3.3.jar commons-fileupload-1.2.2.jar...
ajaxt json 调用struts2 action的实例(myeclipse 直接导入运行) 学习点: 1;怎样在页面用ajax调用struts2的action 2;怎样对struts进行配置 3;ajax的运行历程 最简单明了的实例,清晰的帮你弄清上述概念,运行...
基于 MVC 结构的 J2EE 应用服务器框架 —— apache ...客户端 jQuery ajax 提交表单至 struts2 的 action,action 调用 model,model 生成json返回至 action,再由 action 返回 json 至客户端,并由 jQuery 解析。
google搜到的。我看大神的文章发布时间是2014年5月。亲测好用。 某度搜技术类的真真真心不行。
Spring+Struts+Hibernate+Jquery(AJAX)实现的省份与城市级联效果 原理:通过ajax调用后端struts的action,将返回的JSON对象数组解析载入页面。
8.1.1 页面上:如何使用自定义结果组件构建Struts 2 Ajax应用程序 171 8.1.2 实现JSON结果类型 173 8.2 常用的结果类型 180 8.2.1 RequestDispatcher,也叫做dispatcher 180 8.2.2 ServletRedirectResult,也叫做...
jsp通过Ajax无刷新获取Action返回的模拟数据,然后通过struts2转化成json数据返回页面....这里面Map,List,对象等等,一些常用的操作都有。主要的代码在Action和 json.js里面。适合新手入门
主要实现步骤如下: 1、JSP页面使用脚本代码执行ajax请求 2、Action中查询出需要返回的数据,并转换为json类型模式数据 3、配置struts.xml文件 4、页面脚本接受并处理数据!
3. 在struts2的Action通过2种不同的实现方法返回json格式的字符串。 4. 针对商品实现简单无刷新上传与下载 4. 批量导入数据采用的是导入test文件夹下的测试压缩包upload.rar上传到服务器的临时目录,然后利用WinRar....
3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。 4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录进行显示。 5.单数据源配置(兼容Tomcat和Weblogic)。 6.Hibernate...
我们从Web 2.0的随波逐流,Ajax的大放异彩说起,Struts2框架自己整合了对Ajax的原生支持(struts 2.1.7+,之前的版本可以通过插件实现),框架的整合只是使得JSON的创建变得异常简单,并且可以简单的融入到Struts2...