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 ...
随机推荐
- /etc/rc.d/rc与/etc/rc.d/init.d的关系
在这里先解释一下 /etc/rc.d/init.d 里面放的都是什么东西.这个目录存放的是一些脚本,一般是Linux以rpm包安装时设定的一些服务的启动/关闭脚本.系统在安装时装了好多rpm包,这里面 ...
- Daily Scrum Meeting ——TenthDay
一.Daily Scrum Meeting照片 二.Burndown Chart 新增了几个issues 三.项目进展 1.完成了登录界面与管理员和发布者界面的整合. 2.活动发布者界面的完成 四.问 ...
- sql 获取一批指定范围且不重复的随机数
declare @M int,@N int set @m=10 set @n=1 select top 10 cast(rand(checksum(newid()))*(@M-@N)+@n as in ...
- 用JS做关灯游戏(初级)
这是一个很有意思的游戏,可以试着玩下. <!DOCTYPE html> <html> <head> <meta charset="utf-8&quo ...
- BZOJ4551——[Tjoi2016&Heoi2016]树
1.题意: 给定一颗有根树(根为1),有以下 两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均无标记,而且对于某个 结点,可以打多次标记.)2. 询问操作:询问某个 ...
- [Keygen]IntelliJ IDEA 14.1.7
IntelliJ IDEA 14.1.7 Keygen package com.candy.keygen.intelliJIdea; import java.math.BigInteger; impo ...
- word20161215
name / 名称 name mapping / 名称映射 name resolution / 名称解析 name server (NS) resource record / 名称服务器资源记录 na ...
- java19
1:异常(理解) (1)程序出现的不正常的情况. (2)异常的体系 Throwable |--Error 严重问题,我们不处理. |--Exception |--RuntimeException 运行 ...
- 解决selenium2在IE11上出错的问题,如Unable to get browser
官方解决方案: https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver#required-configuration Re ...
- MySQL 5.7 学习:安全相关特性
背景: 继上次介绍 初识 MySQL 5.6 新功能.参数完之后,刚好MySQL 5.7又GA了,在官方测试里看到,MySQL5.7在功能.性能.可用性.安全和监控上又提升了很高.现在看看和MySQL ...