struts2+ajax+json使用实例

本文主要包含一个struts2+ajax+json的使用实例

步骤如下

1.准备工作
①ajax使用Jquery:jquery-1.4.2.min.js
②struts2与json的依赖包:struts2-json-plugin-2.2.3.jar,json-lib
PS:版本可自己控制!~

2.过程
①引入json依赖包
②编写action类
③配置struts.xml
④编写页面
⑤测试

参考链接

struts2 + ajax + json的结合使用,实例讲解 - tfy1332的专栏 - 博客频道 - CSDN.NET

Struts2 和 Ajax 交互 - - ITeye技术网站

Java中:struts2+jQuery+ajax调用演示 - anyx的专栏 - 博客频道 - CSDN.NET

实例

action类

package com.zxt.action;import java.util.ArrayList;
import java.util.List;import com.opensymphony.xwork2.ActionSupport;public class JsonAction extends ActionSupport {/*** */private static final long serialVersionUID = 7443363719737618408L;/*** 姓名*/private String name;/*** 身高*/private String inch;/*** ajax返回结果,也可是其他类型的,这里以String类型为例*/private List<PersonBean> result;@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubList<PersonBean> pList = new ArrayList<PersonBean>();if ("张三".equals(name)) {PersonBean p1 = new PersonBean();PersonBean p2 = new PersonBean();p1.setId(1);p1.setName("a");p2.setId(2);p2.setName("b");pList.add(p1);pList.add(p2);result = pList;} else {PersonBean p3 = new PersonBean();PersonBean p4 = new PersonBean();p3.setId(3);p3.setName("c");p4.setId(4);p4.setName("d");pList.add(p3);pList.add(p4);result = pList;}return SUCCESS;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getInch() {return inch;}public void setInch(String inch) {this.inch = inch;}/*** * @Title: getResult* @Description:json调取结果* @param @return* @return String* @throws*/public List<PersonBean> getResult() {return result;}
}

struts.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN""http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts><constant name="struts.devMode" value="true"/><package name="ajax" extends="json-default"><action name="jsonAjax" class="com.zxt.action.JsonAction"><!-- 将返回类型设置为json --><result type="json"></result></action></package>
</struts>   

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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_3_0.xsd"><display-name></display-name> <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><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
</web-app>

index.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%>">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>测试</title>
<script type="text/javascript" src="js/jquery-1.4.2.js"></script>
<script type="text/javascript">$(function() {$("#tj").click(function() {//提交的参数,name和inch是和struts action中对应的接收变量/*var data = {"list" : [ {"id" : 1,"content" : "测试信息1111"}, {"id" : 2,"content" : "测试信息2222"} ]};$.each(data.list, function(i, item) {alert(item.id);alert(item.content);});*/var params = {name : $("#xm").val(),inch : $("#sg").val()};$.ajax({type : "POST",url : "jsonAjax.action",data : params,dataType : "text", //ajax返回值设置为text(json格式也可用它返回,可打印出结果,也可设置成json)success : function(json) {var obj = $.parseJSON(json); //使用这个方法解析jsonvar state_value = obj.result; //result是和action中定义的result变量的get方法对应的$.each(state_value, function(i, item) {alert(item.id);alert(item.name);});//alert(state_value);},error : function(json) {alert("json=" + json);return false;}});});});
</script>
</head>
<body><span>姓名:</span><input id="xm" type="text"><br /><span>身高:</span><input id="sg" type="text"><br /><input type="button" value="提交" id="tj">
</body>
</html>

本例中的jsp解析了从服务器传来的list,解析list具体方法如下

var data = {"list":[{"id":1,"content":"测试信息1111"},{"id":2,"content":"测试信息2222"}]}$.each(data.list, function(i, item) {alert(item.id);alert(item.content);});

完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Python顶级入门教程》一步一步,是魔鬼的步伐

目录 &#x1f345; 1、欲练此功&#xff0c;先知此人 ⚾ 2、Python 语言特性 ❤ 3、Python 特点 &#x1f345; 4、Python 行情如何&#xff1f; ✍ 5、Python 怎么学&#xff1f; 5.1 学理论——懂原理 5.2 做练习——会应用 5.3 团队学习——不懂就问 &#x1f34…

C#/C++/Fortran 在32位/64位下数学计算性能对比

测试平台 在我的上一篇博客中对比了VS2010中C#和C在运算密集型程序中的性能。上一篇博客的链接&#xff1a; http://www.cnblogs.com/ytyt2002ytyt/archive/2011/11/24/2261104.html 当时是在AMD 速龙9650 CPU(4核心)下的测试结果。 随着VS2012、Intel Parallel Studio XE 2013…

《Pycharm操作和配置指南》这些不会,写Python肯定慢嘛

据说,看我文章的帅帅 都有个习惯:先点赞、收藏再看 目录 🍅 一、Pycharm 常用命令大全 ♣ 二、Pycharm 骚操作 🍑 1、全局查找

“光纤之父”高锟离世,感谢他的贡献

来源&#xff1a;云头条据明报报道&#xff0c;香港中文大学前校长、“光纤之父”、2009年诺贝尔物理学奖得主&#xff0c;今天&#xff08;9月23日&#xff09;下午在医院离世&#xff0c;享年84岁。高錕1933年11月在中国上海出生&#xff0c;祖贯江苏金山市&#xff0c;出身书…

struts2服务端与android交互

本文主要包括以下内容 android与struts2服务器实现登陆 android从struts2服务器获取list数据 android上传数据到struts2服务器 服务器端代码 package com.easyway.json.android;import java.util.HashMap; import java.util.Map;import javax.servlet.http.HttpServletReque…

爆款专栏《Python 黑科技》目录导航丨进度:12/50

《Python 快速入门专栏丨掌握基础》和《Python 黑科技丨练习应用》由 CSDN 博客专家丨全站排名 Top 8 的硬核博主 不吃西红柿 倾力打造&#xff0c;旨在帮助大家快速入门掌握 Python。 更有学习资料&#xff0c;简历和 PPT 模板&#xff0c;微信公众号 【信息技术智库】关注我&…

干货|2018年中国智能硬件行业现状与发展趋势报告

来源&#xff1a;前瞻产业研究院未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网…

Unity3d--美工建模须知【转http://blog.csdn.net/tanmengwen/article/details/8735889】

3dsmax2010安装插件&#xff0c;输出FBX的类型导入Unity3D中。默认情况下&#xff0c;3dsmax8可以和U3D软件直接融合&#xff0c;自动转换为FBX物体。 1.面数控制 在MAX软件中制作单一Game Object物体的面数不能超过65000个三角形&#xff0c;即32500个多边形Poly&#xff0c;如…

一文看懂芯片测试产业

来源&#xff1a;基业常青经济研究院从IDM到垂直分工&#xff0c;IC产业专业化分工催生独立测试厂商出现。集成电路产业从上世纪60年代开始逐渐兴起&#xff0c;早期企业都是IDM运营模式&#xff08;垂直整合&#xff09;&#xff0c;这种模式涵盖设计、制造、封测等整个芯片生…

为什么0.1无法被二进制小数精确表示?

这个问题困扰了我不少时间&#xff0c;最近有个比较清晰的认识&#xff0c;和大家分享。 这个问题首先要从数位表示法说起。今天我们看到的123这样的十进制数&#xff0c;是自然而然的理解其意义&#xff0c;但是有没有深究其内在的数学原理呢&#xff1f; 所谓十进制是0~9十个…

Android之圆角矩形

安卓圆角矩形的定义 在drawable文件夹下&#xff0c;定义corner.xml <?xml version"1.0" encoding"utf-8"?> <shape xmlns:android"http://schemas.android.com/apk/res/android" android:shape"rectangle"> <!-…

”大脑“爆发背后是50年互联网架构重大变革

前言&#xff1a;面对即将到来的2019年&#xff0c;互联网诞生50年&#xff0c;将是诸多纪念活动中重要的一个&#xff0c;经过50年的发展&#xff0c;互联网究竟发生什么重要的变化&#xff0c;通过这篇文章试图进行一次总结&#xff0c;也作为提前向互联网50年的致敬。作者&a…

jwplayer 消除logo

http://www.cnblogs.com/tv151579/archive/2012/05/21/2511065.html 转载于:https://www.cnblogs.com/gaochun413/archive/2013/04/10/3012454.html

动图|帮你一次性搞清楚 40种传感器工作原理

来源&#xff1a;一览众车/东方仿真物联网智库 转载摘要&#xff1a;帮你一次性搞清楚 40种传感器工作原理扩散硅式压力传感器应变加速度感应器压阻式传感器测量液位的工作原理MQN型气敏电阻结构及测量电路气泡式水平仪的工作原理布料张力测量及控制原理直滑式电位器控制气缸活…

Android实现高仿QQ附近的人搜索展示

本文主要实现了高仿QQ附近的人搜索展示&#xff0c;用到了自定义控件的方法 最终效果如下 1.下面展示列表我们可以使用ViewPager来实现&#xff08;当然如果你不觉得麻烦&#xff0c;你也可以用HorizontalScrollView来试试&#xff09; 2.上面的扫描图&#xff0c;肯定是个Vi…

Netty-4-网络编程模式

我们经常听到各种各样的概念——阻塞、非阻塞、同步、异步&#xff0c;这些概念都与我们采用的网络编程模式有关。 例如&#xff0c;如果采用BIO网络编程模式&#xff0c;那么程序就具有阻塞、同步等特质。 诸如此类&#xff0c;不同的网络编程模式具有不同的特点&#xff0c…

POJ-2400 Supervisor, Supervisee 带权值匹配+枚举所有匹配情况

题意&#xff1a;给定两个关系矩阵&#xff0c;分别表示雇主和雇员的相互好感度&#xff0c;好感度为1最优&#xff0c;N最差。如果一个人与好感度为P的人匹配的话&#xff0c;差值为P-1&#xff0c;现在要求是的总共的差值最小的匹配方法&#xff0c;并且输出所有的匹配方案。…

黎曼猜想被证明了?“他的证明甚至不能算是个错误”!阿蒂亚爵士的证明受到同行质疑...

作者&#xff1a;许琦敏 金婉霞编辑&#xff1a;金婉霞责任编辑&#xff1a;李雪林来源&#xff1a;解剖者摘要&#xff1a;德国柏林时间9月24日上午9点45分&#xff0c;菲尔兹奖与阿贝尔奖双料得主、英国皇家学会院士迈克尔阿蒂亚爵士在德国海德堡举行的海德堡奖诺贝尔奖获得者…

Android自定义View

1.View是什么&#xff1f; View是屏幕上的一块矩形区域&#xff0c;它负责用来显示一个区域&#xff0c;并且响应这个区域内的事件。可以说&#xff0c;手机屏幕上的任意一部分看的见得地方都是View&#xff0c;它很常见&#xff0c;比如 TextView 、ImageView 、Button以及Li…

【IT笔试面试题整理】判断链表是否存在环路,并找出回路起点

【试题描述】定义一个函数&#xff0c;输入一个链表&#xff0c;判断链表是否存在环路&#xff0c;并找出回路起点 Circular linked list: A (corrupt) linked list in which a node’s next pointer points to an earlier node, so as to make a loop in the linked listEXAMP…