`
2277259257
  • 浏览: 515066 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Struts框架下页面、Action通过JSON数据交换

 
阅读更多

接收页面通过ajax提交的json格式的数据,做处理思路

1.将页面取到的数据转换成json格式数据

2.json数据转成json字符串对象

3.action有对应属性(json字符串+字符串反序列化后)接收页面传过来的参数。Ajax提交的json字符串当成String接收

4.接收了json字符串,把json字符串解析获取信息或放序列化成java对象

5.获取json信息dosomething

 

1.action中将java对象转换成json字符串

2.struts.xml中定义返回类型为json

3.页面接收json字符串

4.将json字符串转换成java对象

  JS<------->JSON<------->JAVA

 

页面JSON转换API:(json.js)
 JSON.parse(strJSON)-是用来转化JSON字符串为JavaScript对象的、
JSON.stringify(objJSON) –用来转化JavaScript对象为一个JSON对象的。

java代码中JSON转换API:(JSON-lib包:用于把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean;org.apache.commons(3.2以上版本) ;org.apache.oro ;net.sf.ezmorph(ezmorph-1.0.4.jar)  )

JSONObject.fromObject(q2); -将java对象转换成JSON对象

JSONArray  json = JSONArray.fromObject(list);  -将java对象集合转换成JSON数组对象

 

JSONObject.fromString(json); -将JSON字符串转换成

 

页面

页面发送数据

  一.将收集页面数据组装成js对象(因为JSON对象和JS对象的数据格式一样)

            var name= $("#name").attr("value");

            var pwd = $("#password").attr("value");

            var User =  {"name":name,"password":pwd};

 

  二.JS对象转变成JSON字符串对象

            var strUser = JSON.stringify(User);

 

  三.发送JSON字符串 对象     

          方法1:Ajax发送、接收JSON对象数据

           function loadAuotCityList() {

                $.ajax({

                           type: "POST", //post请求
                           url: "index.action", //
请求actionURL

                           dataType:"json",//返回类型
                           success: function(result){ //
回调函数

                                      if(result.success) {

                                               apdata = eval(result.data);
                                                 } else {

                                              alert("ERROR:" + result.data);
                                                 }

                }
                 });

           }

         方法2:Jquery发送、接收JSON对象数据

             $.post('<c:url value="/index.action"></c:url>',

                        {json: strUser},

                        function(data){

                             alert(data);

                        }

             );

        方法3:

            $.post("showQuestions?type="+type,null,callbackShowQuestions,"json");

            这时在回调函数的参数data获得的就是json转换后的js对象数组,以下标方式便可访问数组里的相应对象信息。

 

 页面获取数据

       方法一:使用Jquery  框架获取json数据

         1. 获取JSON对象数据

            var json_data = $.getJSON("xxx.action",function(data){

                                               for(var i = 0;i < data.length;i++){
                                                     var id = data[i].id;

                                                     var name =data[i].name;

                                   }
                                      });

2.将JSON对象转换成JS对象

var data = $.parseJSON(json_data);

 

方法二:使用json数据转换工具

      Var    employees=responseText.parseJSON();   //JSON字符串解析成对象

      For(var  i=0;  I  < employees.length;  i++){

           Var  name=employees[i].name;

      }

 

 

action处理

public class JsonSubmitAction {

  一:Action接收json数据

    private String json;      //该属性接收页面提交过来名称叫jsonjson字符串对象

    private boolean ok;     //自定义的属性(页面验证时,可将此属性返回给页面做判断)

    public String getJson() {

        return json;

    }

    public void setJson(String json) {

        this.json = json;

    }

    public boolean isOk() {

       return ok;

    } 

    public void setOk(boolean ok) {

      this.ok = ok;

    }

    public void execute() throws Exception {

        方法一:使用json数据转换工具

      //json 反序列化,User属性对应json数据参数

         User user = JSON.parseObject(json, User.class);   

        System.out.println("username:" + user.getName() + " pwd:" + user.getPassword());

       方法二:

     User stu = (User) JSONObject.toBean(json, User.class);

     //获取json信息dosomething

        if (user.getPassword().equals("123456")) {

            ok = true;//可以使用

        } else {

            ok = false;//不可使用

        }

     

    二:Action输出json数据     (action中数据直接拼写成一个json数据的string.....返回即可

   方法一:将数据通过字符串拼接转换成JSON格式的字符串,返回

        将list遍历然后拼接:

 

            DAO dao = new DAO();
            List list= dao.findAll();
            StringBuffer sb=new StringBuffer();
            sb.append("[");
            for(Object obj:list){
                 User  user=(User) obj;
                 sb.append("{").append("title").append(":'").append(dto.getTitle()).append("',")

                     .append("chr_id").append(":").append(dto.getChr_id()).append(",")
                     .append("images").append(":'").append(dto.getImage()).append("'},");
            }
            sb.deleteCharAt(sb.length()-1);
            sb.append("]");

            Return sb;

   

    方法二:使用JSON数据转换工具(java对象转换成json字符串输出)

 

           调用JSONObject.fromObject方法转换(要下2个包。。)
           List list = new ArrayList();
           Map map = new HashMap();
           map.put("id",100);
           map.put("name",100);
           list.add(map);
           out.print(JSONObject.fromObject(list).toString());
                 

      JSONObject jsonStu = JSONObject.fromObject(student);

      System.out.println(jsonStu.toString());

 

          return "success";

    }

}

 

Struts.xml:

再在struts2的配置文件配置一个返回json数据的类型.

<action name="index" class=" action.user.IndexAction">

     <result name="success" type="json">

         <param name="root">ok </param>

     </result>

 </action>

其中<result>中一定要将type规定为json,同时加入<param>组件,规定传递的为ok属性,

没有加入<param>在部署该应用时会报警告no default parameter defined for result of type json(没有为json响应类型定义默认的参数)此时客户端接收到的就不仅仅是ok属性而是所有action中的属性,在客户端alert返回的数据会显示object,但是加入<param name=”root”>ok</param>返回的数据中就只有ok,alert时显示的内容就是true或者false,这里需要注意的是<param name=”root”>ok</param>中name=”root”是固定的写法。

分享到:
评论

相关推荐

    Struts2 与Jquery Ajax的json数据交换的典型范例

    本范例将探讨如何在Struts2框架下利用jQuery的Ajax功能实现JSON数据交换。 **1. JSON数据格式** JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在...

    使用struts2 和ajax进行传递json数据

    在本场景中,我们将重点讨论如何利用Struts2作为后台处理框架,与前端Ajax通过JSON(JavaScript Object Notation)数据格式进行数据交换。 **Struts2框架** Struts2是一个基于MVC(Model-View-Controller)设计模式...

    使用Struts2的JSON插件来实现JSON数据传递

    Struts2的JSON插件正是为了方便开发者在Struts2框架中处理JSON数据而设计的。 首先,让我们深入了解JSON。JSON是一种独立于语言的数据交换格式,具有易于人阅读和编写,同时也易于机器解析和生成的特点。它的数据...

    android接收json例子struts2Action返回json格式数据

    在Android开发中,与服务器进行数据交互是常见的需求,JSON作为一种轻量级的数据交换格式,被广泛用于客户端和服务器之间的通信...通过这两个示例,你可以更直观地学习和理解Android与Struts2之间JSON数据交换的过程。

    struts2+json

    这个资源"struts2+json"显然涉及到在Struts2框架下实现JSON(JavaScript Object Notation)数据交换,这是一种轻量级的数据交换格式,广泛用于前后端交互,特别是AJAX(Asynchronous JavaScript and XML)请求。...

    struts2返回JSON数据的两种方式

    在本文中,我们将探讨两种在Struts2框架中返回JSON数据的方法。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端交互,尤其是在AJAX请求中。Struts2提供了一套方便的机制来支持JSON...

    ajax struts 无刷新访问后台返回json数据

    总结,使用Ajax和Struts框架,我们可以构建一个高效的Web应用,实现在不刷新整个页面的情况下,获取和处理服务器返回的JSON数据,从而提升用户体验。通过实践和研究这个项目实例,你将能深入掌握这一技术的运用。

    struts2 action 返回json方法(一)源码

    默认情况下,Action会返回一个JSP页面作为结果,但通过配置,我们可以让Action返回JSON数据。这需要使用到一个名为`json`的结果类型,它是由Struts2的JSON插件提供的。 1. **安装JSON插件** 在使用JSON功能前,...

    AJAX 想Struts2后台传送Json数据并向前台返回Json格式的数据

    本主题主要探讨如何在Struts2框架下利用AJAX传递和接收JSON(JavaScript Object Notation)数据,这是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 首先,让我们理解三种在Struts2中...

    sturts框架下返回json数据 list map 对象

    通过以上步骤,你可以在Struts框架下顺利地返回JSON数据,无论是list对象、map对象还是自定义的Java类对象,都可以轻松实现。在实际开发中,根据项目需求,你还可以结合Spring、Hibernate等其他框架,构建更复杂的...

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    结合这三个组件,开发者可以构建出响应式、动态的Web应用,后端使用Struts 2处理业务逻辑,通过JSON Plugin返回JSON数据,前端利用jQuery通过AJAX请求获取这些数据,然后动态更新页面,提高用户体验。这种前后端分离...

    struts2返回json数据用query在页面接收

    在Struts2中,我们经常需要处理JSON(JavaScript Object Notation)数据,这是一种轻量级的数据交换格式,广泛应用于前后端交互。在本场景中,我们将探讨如何在Struts2中返回JSON数据,并在页面上使用jQuery库的`$....

    struts2与json整合

    在探讨“Struts2与JSON整合”的主题时,我们深入分析了如何在Struts2框架中集成JSON技术,实现前后端数据的高效交互。Struts2作为一款流行的Java Web开发框架,提供了丰富的功能来简化Web应用程序的开发过程。而JSON...

    struts2返回json数据的方法一 使用json-default

    然而,在现代Web应用中,JSON(JavaScript Object Notation)格式的数据交换变得越来越普遍,因为它能轻松地在服务器和客户端之间传输数据。本篇文章将详细讲解如何在Struts2中使用“json-default”拦截器来返回JSON...

    jQuery+json异步实现JSP和struts2之间的数据传递

    "jQuery+json异步实现JSP和struts2之间的数据传递"是一个典型的应用场景,它结合了前端JavaScript库jQuery与后端MVC框架Struts2,通过JSON这种轻量级的数据交换格式进行高效的数据交互。下面我们将详细探讨这一主题...

    struts2框架json传递后台数据到echarts

    在Struts2中,我们可以利用JSON(JavaScript Object Notation)这种轻量级的数据交换格式来有效地传输数据,尤其是在与前端交互时,如使用Echarts这样的数据可视化库。Echarts是一款基于JavaScript的开源图表库,它...

    extjs 跟 struts+json

    标题 "extjs 跟 struts+json" 暗示了本文将探讨如何使用ExtJS框架与Struts框架结合,通过JSON数据格式进行交互。ExtJS是一个强大的JavaScript库,用于构建富客户端Web应用程序,而Struts是Java Web开发中的一个MVC...

    Struts+Jquery+Ajax+Json应用实例

    **Ajax(Asynchronous JavaScript and XML)**:Ajax允许在不刷新整个页面的情况下,与服务器交换数据并局部更新网页内容,从而实现了异步交互。在jQuery中,使用$.ajax()函数或其简化的$.get()和$.post()方法可以...

    Struts2+Json+Android简单实现

    总结来说,“Struts2+Json+Android简单实现”是一个典型的前后端交互示例,展示了如何利用Struts2作为服务端接口,通过JSON进行数据交换,最后在Android客户端进行数据展示和用户交互。理解并掌握这种技术栈对于构建...

Global site tag (gtag.js) - Google Analytics