JSP+AJAX获取或者传递JSON对象以及参数

commodityList.jsp

第一步:创建 名为"ajax" 的 Java Web项目。

第二步:加入struts2的jar包,这里需要四个包 freemarker.jar  ognl.jar  struts2-core.jar  commons-fileupload.jar  commons-io.jar   xwork-core-2.1.6.jar(这个包加上版本号,是因为下文要提到它),这六个包是struts必须依赖的jar包,什么好说的。

第三步:修改 web.xml 加入 struts的过滤器,代码如下:

[xhtml] view plaincopy

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7. <filter>
  8. <filter-name>struts2</filter-name>
  9. <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  10. </filter>
  11. <filter-mapping>
  12. <filter-name>struts2</filter-name>
  13. <url-pattern>/*</url-pattern>
  14. </filter-mapping>
  15. <welcome-file-list>
  16. <welcome-file>index.jsp</welcome-file>
  17. </welcome-file-list>
  18. </web-app>

第四步:加入json的包,这里需要两个:json-lib.jar  jsonplugin.jar 这里要注意很重要的一点,因为json大量引用了Apache commons的包,所以这里要一并加入,需要的commons包共4个,除了commons的包外,还需要引入一个 ezmorph的包,所以这一步一共要引入7个包,列出如下:commons-collections.jar  commons-lang.jar  commons-beanutils.jar  commons-logging.jar  ezmorph.jar 再加上json的两个包共七个,一次性加入。

第五步:写后台处理AjaxLoginAction.action,内容如下:

[java] view plaincopy

  1. package qy.test.action;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import net.sf.json.JSONObject;
  5. import com.opensymphony.xwork2.ActionSupport;
  6. public class AjaxLoginAction extends ActionSupport {
  7. // 用户Ajax返回数据
  8. private String result;
  9. // struts的属性驱动模式,自动填充页面的属性到这里
  10. private String loginName;
  11. private String password;
  12. @Override
  13. public String execute() {
  14. // 用一个Map做例子
  15. Map<String, String> map = new HashMap<String, String>();
  16. // 为map添加一条数据,记录一下页面传过来loginName
  17. map.put("name", this.loginName);
  18. // 将要返回的map对象进行json处理
  19. JSONObject jo = JSONObject.fromObject(map);
  20. // 调用json对象的toString方法转换为字符串然后赋值给result
  21. this.result = jo.toString();
  22. // 可以测试一下result
  23. System.out.println(this.result);
  24. return SUCCESS;
  25. }
  26. //getter  setter 方法省略
  27. }

第六步:写前台index.jsp,注意加入 jquery的js文件 内容如下:

[javascript] view plaincopy

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <mce:script type="text/javascript" src="js/jquery-1.3.2.min.js" mce_src="js/jquery-1.3.2.min.js"></mce:script>
  8. <mce:script type="text/javascript"><!--
  9. $(document).ready( function() {
  10. //使用 Ajax 的方式 判断登录
  11. $("#btn_login").click( function() {
  12. var url = ‘ajaxLogin.action‘;
  13. alert("===");
  14. //获取表单值,并以json的数据形式保存到params中
  15. var params = {
  16. loginName:$("#loginName").val(),
  17. password:$("#password").val(),
  18. }
  19. //使用$.post方式
  20. $.post(
  21. url,        //服务器要接受的url
  22. params,     //传递的参数
  23. function cbf(data){ //服务器返回后执行的函数 参数 data保存的就是服务器发送到客户端的数据
  24. //alert(data);
  25. var member = eval("("+data+")");    //包数据解析为json 格式
  26. $(‘#result‘).html("欢迎您:  "+member.name);
  27. },
  28. ‘json‘  //数据传递的类型  json
  29. );
  30. });
  31. });
  32. // --></mce:script>
  33. </head>
  34. <body>
  35. <span>用户名:</span>
  36. <input type="text" id="loginName" name="loginName">
  37. <br />
  38. <span>密码:</span>
  39. <input type="password" name="password" id="password">
  40. <br />
  41. <input type="button" id="btn_login" value="Login" />
  42. <p>
  43. 这里显示ajax信息:
  44. <br />
  45. <span id="result"></span>
  46. </p>
  47. </body>
  48. </html>

第七步:在src目录下加入struts.xml,并配置相应的xml文件,为ajax请求提供数据。代码如下:

[xhtml] view plaincopy

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  4. "http://struts.apache.org/dtds/struts-2.0.dtd">
  5. <struts>
  6. <package name="ajax" extends="json-default">
  7. <action name="ajaxLogin" class="qy.test.action.AjaxLoginAction">
  8. <!-- 返回类型为json 在sjon-default中定义 -->
  9. <result type="json">
  10. <!-- root的值对应要返回的值的属性 -->
  11. <!-- 这里的result值即是 对应action中的 result -->
  12. <param name="root">result</param>
  13. </result>
  14. </action>
  15. </package>
  16. </struts>

第八步:如果第四步没有加入commons-logging.jar包,这里要记得加入

第九步:发布运行。很不幸,你会发现一个错误,

java.lang.ClassNotFoundException: com.opensymphony.xwork2.util.TextUtils:

这是struts的版本错误,因为用的xwork2.1.6-core.jar中不存在TextUtils类,这里把 xwork2.1.2-core.jar也加到classpath中,xwork2.1.2-core.jar中包含这个东西,我们用的是xwork2.1.6的jar,当要用到TextUtils时,就去xwork2.1.2-core.jar中找。

时间: 2024-10-20 06:26:27

JSP+AJAX获取或者传递JSON对象以及参数的相关文章

jq ajax传递json对象到服务端及contentType的用法

目录 0.一般情况下,通过键值对的方式将参数传递到服务端 1.ajax 传递复杂json对象到服务端 2.content-Type 对asp.net mvc项目的重要性 0.一般情况下,通过键值对的方式将参数传递到服务端 0.1 客户端代码: $.ajax({ url: 'TestHandler.ashx', type: 'post', data: { name: "admin", age: 10 }, dataType: 'text', success: function (data

Ajax请求php返回json对象数据中包含有数字索引和字符串索引,在for in循环中取出数据的顺序问题

//php中的数组数据格式 Array ( [all] => Array ( [title] => ALL [room_promotion_id] => all ) [best_available_rate] => Array ( [title] => Best Available Rate [room_promotion_id] => best_available_rate ) [30] => Array ( [room_promotion_id] =>

ajax获取后台传递的json数据

最近在使用JQuery的ajax方法时,需要返回的数据为json数据,在success返回中数据处理会根据返回方式不同会采用不同的方式来生成json数据.在$.ajax方法中应该是如何来处理的,简单进行说明. 首先给出要传的json数据:[{"demoData":"This Is The JSON Data"}] 1,使用普通的aspx页面来处理 Js代码   $.ajax({ type: "post", url: "Default.a

$.ajax传递json对象到后台

var mall = { MallID: $("#createId").val().trim(), MallName: $("#createName").val().trim(), HomeURL: $("#chomeurl").val().trim(), PayNotifyURL: $("#cpayurl").val().trim(), RefundNotifyURL: $("#crepayurl").v

页面传递Json对象,后台解析

使用的组件 前台组件:json2.js  来自 http://www.json.org/js.html 后台组件:json-lib-2.2.2-jdk15.jar 前台代码 1 通过页面生成json对象列表,然后转换成字符串 // 生成json对象 转字符串 function makeTsJsonParam(){ var tsList = new Array(); var ts = {'tn_id':'','tn_trainSortie':'','tn_takeOffTime':'','tn_l

本文使用springMVC和ajax,实现将JSON对象返回到页面

一.引言 本文使用springMVC和ajax做的一个小小的demo,实现将JSON对象返回到页面,没有什么技术含量,纯粹是因为最近项目中引入了springMVC框架. 二.入门例子 ①. 建立工程,并导入相应spring jar包和解析json的包fastjson. ②. 在web.xml文件中配置Spring的核心类DispatcherServlet ③. 配置Spring的核心配置文件spring-servlet.xml ④. 编写实体类Person public class Person

jQuery调用WCF服务传递JSON对象

下面这个示例使用了WCF去创建一个服务端口从而能够被ASP.Net页面通过jQuery的AJAX方法访问,我们将在客户端使用Ajax技术来 与WCF服务进行通信.这里我们仅使用jQuery去连接Web Service,而不去使用ASP.Net AJAX库,至于为什么不使用AJAX库中,那是因为我们在项目中已经使用了jQuery,而它已经能处理全部的AJAX请求和所有功能,并且,如果我们 一旦使用ASP.NET AJAX库,我们也必须多包含一个超过80Kb的数据量(调试模式下会更大),但这也不是说

SpringBoot 获取前端传递Json的几种方法

一.Json对象[email protected]接收 var val = {id: 1, name: "小明"}; $.ajax({ url: "/getJson", dataType: "JSON", type: "post", contentType: 'application/json;charset=UTF-8', data: JSON.stringify(val), success: function (msg)

nodejs 获取url中json格式的参数

在使用nodejs时经常使用req.query.参数名 来获取参数的值 例如 url : http://localhost:7778/project?id=1 <span style="font-size:18px;">var id = req.query.id console.log(id);//打印出url的id参数值1 </span> 但是在url中的参数是JSON格式时就出现了问题 url:http://localhost:7778/project?ma