(一)Jsp页面代码

<%@ page language="java" import="java.util.*" 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>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css">
-->
<script type="text/javascript" src="js/jquery-1.6.1.js" mce_src="js/jquery-1.6.1.js"></script> <script type="text/javascript">
$(function(){ $("#str").click(function(){
$.ajax({
type: "post",
url: "jsonTest/str.action",
dataType: "json",
data: {"name":"pyz","age":""},
beforeSend: function(XMLHttpRequest){
//ShowLoading();
$("#str").val("正在处理中...");
},
success: function(data){
alert("字符串:" + data);
},
complete: function(XMLHttpRequest, textStatus){
//HideLoading();
$("#str").val("已处理完成");
},
error: function(){
//请求出错处理
alert("error");
}
});
}); $("#keyValue").click(function(){
$.ajax({
type: "post",
url: "jsonTest/keyValue.action",
dataType: "json",
data: {"name":"pyz","age":""},
beforeSend: function(XMLHttpRequest){
//ShowLoading();
$("#keyValue").val("正在处理中...");
},
success: function(data){
var jo = eval("("+data+")");
alert("姓名:" + jo.name + " 年龄:"+ jo.age);
},
complete: function(XMLHttpRequest, textStatus){
//HideLoading();
$("#keyValue").val("已处理完成");
},
error: function(){
//请求出错处理
alert("error");
}
});
}); $("#objList").click(function(){
$.ajax({
type: "post",
url: "jsonTest/objList.action",
dataType: "json",
data: {"name":"pyz","age":""},
beforeSend: function(XMLHttpRequest){
//ShowLoading();
$("#objList").val("正在处理中...");
},
success: function(data){
var jo = eval("("+data+")");
var buf="" ;
//遍历json返回数据
$(jo).each(function(i,item){
buf += "姓名:";
buf += item.name;
buf += " 年龄:";
buf += item.age;
buf += "/r/n";
});
alert(buf);
},
complete: function(XMLHttpRequest, textStatus){
//HideLoading();
$("#objList").val("已处理完成");
},
error: function(){
//请求出错处理
alert("error");
}
});
}); }); </script>
</head> <body>
<input type="button" id="keyValue" value="提交/接收数据(键值对)" /> <br>
<input type="button" id="str" value="接收字符串" /> <br>
<input type="button" id="objList" value="接收对象列表" /> <br>
</body>
</html>

(二)Action代码

package com.pyz.action;
import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import com.opensymphony.xwork2.ActionSupport;
@ParentPackage("json-default")
public class JsonTestAction extends ActionSupport {
private static final long serialVersionUID = 1L; //返回json格式的数据
private String result; @Action(
value="/jsonTest/str",
results={
@Result(name="success", type="json", params={"root","result"})
}
)
public String str(){
String name = ServletActionContext.getRequest().getParameter("name");
String age = ServletActionContext.getRequest().getParameter("age"); this.result = "aaa"; return SUCCESS;
} @Action(
value="/jsonTest/keyValue",
results={
@Result(name="success", type="json", params={"root","result"})
}
)
public String keyValue(){
String name = ServletActionContext.getRequest().getParameter("name");
String age = ServletActionContext.getRequest().getParameter("age"); // //方法一,直接创建JSON对象
// JSONObject jo = new JSONObject();
// jo.element("name", name);
// jo.element("age", age); // //方法二,JAVABEAN转JSON对象
// User user = new User();
// user.setName("pyz");
// user.setAge(19);
// JSONObject jo = (JSONObject)JSONObject.fromObject(user);
// //JSONObject jo = (JSONObject)JSONSerializer.toJSON(user);//等于上语句 //方法三,MAP转JSON对象
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "pyz");
map.put("age", 19);
JSONObject jo = (JSONObject)JSONObject.fromObject(map);
//JSONObject jo = (JSONObject)JSONSerializer.toJSON(user);//等于上语句 this.result = jo.toString(); return SUCCESS;
}
@Action(
value="/jsonTest/objList",
results={
@Result(name="success", type="json", params={"root","result"})
}
)
public String objList(){
String name = ServletActionContext.getRequest().getParameter("name");
String age = ServletActionContext.getRequest().getParameter("age"); //方法一,直接创建JSON对象
JSONObject jo = new JSONObject();
jo.element("name", name);
jo.element("age", age);
JSONObject jo1 = new JSONObject();
jo1.element("name", "ty");
jo1.element("age", "29"); //同理,可以将JAVABEAN、MAP对象转换成JSON对象,再添加到JSONArray中 JSONArray ja = new JSONArray();
ja.add(jo);
ja.add(jo1);
this.result = ja.toString(); return SUCCESS;
} public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
} public class User{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
}

Struts2+jQuery+Json零配置实现ajax的更多相关文章

  1. struts2 + jquery + json 简单的前后台信息交互

    ajax 是一种客户端与服务器端异步请求的交互技术.相比同步请求,大大提高了信息交互的速度和效率.是当下非常实用和流行的技术. 这里简单的说明 struts2 + jquery + json 下的 信 ...

  2. struts2+jquery+json集成

    以下采用struts2+jquery+json模拟一个案例.当点击提交按钮时会把输入的数据提交到后台,然后从后台获取数据在客户端显示. 效果如下: 接下来为struts2+jquery+json集成步 ...

  3. 留存: struts2+jquery+json集成

    原文地址:struts2+jquery+json集成 以下采用struts2+jquery+json模拟一个案例.当点击提交按钮时会把输入的数据提交到后台,然后从后台获取数据在客户端显示. 效果如下: ...

  4. Struts2+JQuery+Json登陆实例

    Struts2+JQuery+Json登陆实例 博客分类: Struts2   在搭建之前.. 首先,需要准备struts2.0框架的5个核心包, 以及jsonplugin-0.32.jar 以及js ...

  5. json与java对象的转换,以及struts2对json的支持,实现ajax技术

    这两天学的东西有点多,今天抽个时间写下来,以此作为激励,这两天学了json,ajax,jQuery 一.使用第三方的工具java转换为json类型 首先就是java类型转换为json对象,首先要导入第 ...

  6. struts2 convention-plugin实现零配置

    零配置并不是没有配置,而是通过约定大于配置的方式,大量通过约定来调度页面的跳转而使得配置大大减少.使得Action等配置不必写在Struts.xml中. convention-plugin的约定 1. ...

  7. struts2 Convention插件零配置,使用注解开发

    从struts21开始,struts2不再推荐使用codebehind作为零配置插件,而是改用Convention插件来支持零配置.与以前相比较,Convention插件更彻底. 使用Conventi ...

  8. struts2 + jquery 开发环境下的ajax构建方法(action写法 + struts.xml配置 + js调用代码)

    1.action写法 public class RegisterAction extends ActionSupport { private InputStream inputStream; /** ...

  9. Struts2+JQuery+JSON实现异步交互

    1.环境 jquery:jquery-1.9.0.min.js struts2:基本包就不说了,就说说应用json的包,主要有struts2-json-plugin-2.3.8.jar json:js ...

随机推荐

  1. Alpha版本十天冲刺——Day 10

    站立式会议 最后一天,很高兴我们做出了跟预期差不多的版本,实现了基本功能,虽然还有一些bug,但是下一阶段我们会继续加油! 会议总结 队员 今天完成 遇到的问题 感想 鲍亮 功能细节更改 我的手机运行 ...

  2. Google疯了,竟然这样!

    导读 一个小问题:你每天做什么事?当然了,好多事情,但是我可以指出一件事,你几乎每天都会用 Google 搜索,我说的对吗?现在,如果你是一位 Linux 用户,这里有另外一个问题:如果你甚至不用离开 ...

  3. angularjs 笔记(1) -- 引导

    首先: 1,引入angularJS文件,<script type="text/javascript" src="angularjs.min.js"> ...

  4. DOM对象

    DOM是以层次结构组织的节点或信息片断的集合.文档对象模型(Document Object Model)是给HTML与XML文件使用的一组API.DOM的本质是建立网页与脚本语言或程序语言沟通的桥梁. ...

  5. espcms特殊标签

    内页banner图从后台调用分类图片 <div style="background:url({%$rootdir%}{%find:type class=$type.topid out= ...

  6. ACM/ICPC 之 混合图的欧拉回路判定-网络流(POJ1637)

    //网络流判定混合图欧拉回路 //通过网络流使得各点的出入度相同则possible,否则impossible //残留网络的权值为可改变方向的次数,即n个双向边则有n次 //Time:157Ms Me ...

  7. JS判断是否是微信页面,判断手机操作系统(ios或android)并跳转到不同下载页面

    JS判断客户端是否是iOS或者Android 参考:http://caibaojian.com/browser-ios-or-android.html function is_weixin() { v ...

  8. 仿Redis用来作前端浏览器的数据存储结构

    用js写了一个类似redis存储结构的类库,目前只有的存储类型只有hash.set两个, 还没测试过性能,欢迎各位猿友能够帮我指出程序代码的缺陷, 后期有时间会完善其他几个类型的存储结构. /**** ...

  9. NSLOOKUP命令使用

    nslooup命令,可以用来检测dns服务器是否可用,以及域名对应的真实ip,在一些网络dns不稳定的情况下可以使用,用来正确访问网站. Microsoft Windows [版本 6.1.7601] ...

  10. margin-before: 1em; margin-after: 1em;margin-start:0px;margin-end: 0px;

    总的来说:这是CSS3.0的对于文章段P容器的定义方法语句!display:block这个样式,只定义了P容器为一个块;后面四句是CSS3中的样式定义方法:-webkit-margin-before: ...