Struts2+jQuery+Json零配置实现ajax
(一)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的更多相关文章
- struts2 + jquery + json 简单的前后台信息交互
ajax 是一种客户端与服务器端异步请求的交互技术.相比同步请求,大大提高了信息交互的速度和效率.是当下非常实用和流行的技术. 这里简单的说明 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+Json登陆实例 博客分类: Struts2 在搭建之前.. 首先,需要准备struts2.0框架的5个核心包, 以及jsonplugin-0.32.jar 以及js ...
- json与java对象的转换,以及struts2对json的支持,实现ajax技术
这两天学的东西有点多,今天抽个时间写下来,以此作为激励,这两天学了json,ajax,jQuery 一.使用第三方的工具java转换为json类型 首先就是java类型转换为json对象,首先要导入第 ...
- struts2 convention-plugin实现零配置
零配置并不是没有配置,而是通过约定大于配置的方式,大量通过约定来调度页面的跳转而使得配置大大减少.使得Action等配置不必写在Struts.xml中. convention-plugin的约定 1. ...
- struts2 Convention插件零配置,使用注解开发
从struts21开始,struts2不再推荐使用codebehind作为零配置插件,而是改用Convention插件来支持零配置.与以前相比较,Convention插件更彻底. 使用Conventi ...
- struts2 + jquery 开发环境下的ajax构建方法(action写法 + struts.xml配置 + js调用代码)
1.action写法 public class RegisterAction extends ActionSupport { private InputStream inputStream; /** ...
- Struts2+JQuery+JSON实现异步交互
1.环境 jquery:jquery-1.9.0.min.js struts2:基本包就不说了,就说说应用json的包,主要有struts2-json-plugin-2.3.8.jar json:js ...
随机推荐
- MongoDB Windows环境安装及配置
MongoDB一般安装 1.首先到官网(http://www.mongodb.org/downloads )下载合适的安装包,目前的最新版本为2.6 安装包有zip和msi格式的,这里推荐下载zip格 ...
- JS正则检测密码强度
今天遇到个需求,使用JS检测密码强度:密码长度最短为8,必须同时包含字母.数字.特殊符号. 代码如下: /* * 检测密码复杂度 */ function ...
- (原)android的alertdialog中加入edittext但是不弹出软键盘等问题的解决与原因
摘要:alertdialog中加入edittext但是不弹出软键盘等问题网上有很多不管用的解决方案, 本文意在给出更有效的解决办法,并初步探究其原因 正文 在对话框中插入文本框是十分常见的需求 通常我 ...
- 一个简单的servlet的demo
javaweb 的应用我们需要参考javaee api 查找servlet接口 javax.servletInterface Servlet All Known Subinterfaces: Ht ...
- ACM/ICPC 之 Unix会议室(POJ1087)
采用EK算法解网络流经典题,本题构图思路比较明确. //Unix会议室插座转换 //网络流-EK算法 //Time:47Ms Memory:1188K #include<iostream> ...
- PHP 函数(数组字符串)
函数四要素: 参数 变量 返回值 函数体 函数分类: 1.有参数的函数: function Show() { echo "hello"; } Show(); 2. 有返回 ...
- 仿Redis用来作前端浏览器的数据存储结构
用js写了一个类似redis存储结构的类库,目前只有的存储类型只有hash.set两个, 还没测试过性能,欢迎各位猿友能够帮我指出程序代码的缺陷, 后期有时间会完善其他几个类型的存储结构. /**** ...
- Word2vec多线程(tensorflow)
workers = [] for _ in xrange(opts.concurrent_steps): t = threading.Thread(target=self._train_thread_ ...
- 几年前做家教写的C教程(之五专讲结构体与文件操作)
C语言学习宝典(5) 结构体: 将不同类型的数据组合成为一个有机的整体,这个整体就是一个结构体. 例如: Struct student { Int name; Char sex; Float scor ...
- centos6.6 安装cacti监控服务器
整理一份cacti的安装步骤.留作笔记和以后参考用. 环境: centos 6.6 -x64 cacti-0.8.8b-cn.tar.gz mysql yum安装即可 yum服务使用centos自带的 ...