Struts2.5 利用Ajax将json数据传值到JSP

AJAX +JSON=》JSP

AJAX



  AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。

JSON



  JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

利用Ajax将json数据传值到JSP



第一步:在你的Action中创建一个json数据

public class AjaxAction extends ActionSupport{
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    private String  result;
    public String getResult() {
        return result;
    }
    public void setResult(String result) {
        this.result = result;
    }
public  String  getjson() {
     JSONObject json = new JSONObject();
    json.put("name","张三");
        json.put("password","123456");
    result=json.toString();
    return SUCCESS;
}    

第二步:编写struts.xml文件中的内容

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
    <struts>
    <!-- 设置开发者模式 修改action中的名字可以不用重启服务器 -->
    <constant name="struts.devMode" value="true"></constant>
    <!-- 只有在后缀中有(.do)的才经过,这个value可以自己修改 -->
    <constant name="struts.action.extension" value="do"></constant>
    <!-- 开启动态方法调用 -->
     <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
        <package name="default" extends="json-default"  namespace="">
            <action name="ajax" class="com.action.AjaxAction"  method="getjson">
            <result name="success">/ajaxjson.jsp</result>
            <result type="json" ><!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对应的getter方法 -->                <param name="root">result</param>
            </result>
        </action>
    </package>
    </struts>

凡是使用Struts2序列化对象到JSON的action,所在的package必须继承自json-default,注意,这里唯一的result,没有指定name属性。parm设置name=“root”表示局部刷新,返回根目录页面.

第三步:首先先了解Ajax的原理:这是用jQuery做的,需要引  js

function testCheck(num){
        $.ajax({
            type:"post",//提交方式
            url:"TestCheckServlet",//提交地址
            async:true,//是否异步请求
            dataType:"html",//返回类型
            data:{"num":num},//传过去的值
            success:function(data,textStatus){//成功执行的方法
                var json=eval("("+data+")");//将传过来的数据转json,也可以传过来就是json数据免得麻烦转
                 alert(json.name);
            },
            error:function(){//失败执行的方法
                alert("error");
            }
        })
    } 

JSON的传值方法还有很多,需要大家一点点的挖掘

【版本声明】本文为博主原创文章,转载请注明出处

时间: 2024-10-08 21:19:34

Struts2.5 利用Ajax将json数据传值到JSP的相关文章

Struts2中通过Ajax传递json数据

1.导入Struts2所需要的jar包 下载Struts2的jar包时,可以下载struts-2.5.13-min-lib.zip,然后放到项目的/WebContent/WEB-INF/lib路径下struts-2.5.13-min-lib只包含以下jar包: commons-fileupload-1.3.3.jar commons-io-2.5.jar commons-lang3-3.6.jar freemarker-2.3.23.jar javassist-3.20.0-GA.jar ogn

javascript 利用ajax读取json数据

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content=

【Struts2】SSH如何返回JSON数据

  在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是json格式了.在这里以简单的Demo总结两种ssh返回Json格式的数据 项目目录如下 主要是看 上图选择的部分 WebRoot里面就是平常的配置 第一种方法是使用com.google.gson.Gson 将对象转化为Json字符串  (gson-1.6.jar) 主要的代码如下 1 package com.javen.tool; 2 3 import java.io.IOException; 4 import java.io.P

jquery实现ajax,返回json数据

jquery实现ajax可以调用几种方法 我经常用的是$get(url,data,callback,type)方法 其中url是异步请求的页面(可以是.ashx文件),data是参数,callback是回调函数,而type是返回数据的类型.type有xml,html,json,text等. 首先,页面引用jquery.js 在页面写ajax处理的js函数 1 2 3 4 5 6 7 8 9 10 11 12 13 function initMeeting() {             $.ge

ThinkPHP中使用ajax接收json数据的方法

本文实例讲述了ThinkPHP中使用ajax接收json数据的方法.分享给大家供大家参考.具体分析如下: 这里通过ThinkPHP+jquery实现ajax,扩展了下,写了个查询,前台代码如下: 首先需要引入jquery.js,主要代码如下: 1 function ajax(id,pic){ 2 3 //由于ThinkPHP不解析JavaScript里的ThinkPHP常量,所以需要先在这里定义. 4 5 var URL='__URL__'; 6 7 $.ajax({ 8 9 url: URL+

ajax处理json数据

在php生成json数据(json_decode()) 参数为索引数组生成的数据格式为js数组 $fruit = array('apple','banana','pear','orange'); $fruit_jn = json_encode($fruit); //['apple','banana','pear','orange'] 参数为关联数组生成的数据是json对象格式 $fruit = array('a'=>'apple','b'=>'banana','c'=>'pear','d

ajax请求json数据异常:nested exception is net.sf.json.JSONException: java.lang.reflect.InvocationTargetException] with root cause

ajax请求json数据异常:nested exception is net.sf.json.JSONException: java.lang.reflect.InvocationTargetException] with root cause 1.异常原因:所请求的json数据中包含java.util.date数据类型,但是在后台并没有将其格式转换 2.解决方法:添加工具类DateJsonValueProcessor import java.text.SimpleDateFormat; imp

ajax获取json数据及实现跨域请求

最近想练习一下ajax获取json数据 , 首先上网找一些在线的可用来测试的接口. -----------------------------------------------------这里是接口分割线 Begin-------------------------------------------------------------------------------------------------- 电商接口 淘宝商品搜索建议: http://suggest.taobao.com/s

[YII2] 去除自带js,加载自己的JS,然后ajax(json)传值接值!

本想用YII2自带的JS,可是用着效果不好,想从新加载,找了好多终于实现啦!还有ajax(json)传值接值! 首先直接了当的就把YII2自带的js去掉! 把下面代码加入到/config/main.php文件'components'=>[]里面,可以禁掉CSS和JS 1 'components' => [ 2 ............. 3 //不加载YII2自带JS以及CSS 4 'assetManager'=>[ 5 'bundles'=>[ 6 'yii\bootstrap\