struts2 Json 学习笔记

本文详细介绍了如何在Struts2框架中解压缩目录并导入lib文件下的struts2-json-plugin-2.2.1.jar,以及如何在配置文件中引入并使用JSON插件来实现数据序列化和JSON格式输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 讲Struts2 解压缩目录的lib文件下的struts2-json-plugin-2.2.1.jar文件复制到web应用的WEB-INF文件下。
  2. <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
     <constant name="struts.i18n.encoding" value="UTF-8"></constant>
     <package name="example" namespace="/" extends="json-default">
      <action name="getJsonData" class="test.action.JsonAction" method="getJsonData">
       <result type="json">
        <param name="noCache">true</param>
        <param name="contentType">text/html</param>
        <param name="root">dataMap</param>
       </result>
      </action>
      <action name="getJsonData2" class="test.action.JsonAction" method="getJsonData2">
        <result type="json">
         <param name="noCache">true</param>
         <param name="contentType">text/html</param>
         <param name="root">dataMap</param>
        </result>
       </action>
     </package>
    </struts>   
  3. package test.action;

    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;

    import org.apache.struts2.ServletActionContext;

    import test.pojo.User;

    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;

    public class JsonAction extends ActionSupport {
     public  JsonAction () {
        dataMap = new HashMap<String, Object>();
     }
     private Map<String, Object> dataMap ;
     public String getJsonData(){
      
       dataMap.clear();
      System.out.println("ggg*************");
      User user = new User();
      user.setName("yllly");
      user.setAge(10);
      user.setBirDate(new Date());
      dataMap.put("user", user);  
          // 放入一个是否操作成功的标识  
            dataMap.put("success", true);  

      return SUCCESS;
     }

     
     public String getJsonData2(){
      
       dataMap.clear();
      System.out.println("ggg*************");
      User user = new User();
      user.setName("ylll222y");
      user.setAge(10);
      
      user.setBirDate(new Date());
      dataMap.put("user", user);  
          // 放入一个是否操作成功的标识  
            dataMap.put("success", true);  

      return SUCCESS;
     }
     public Map<String, Object> getDataMap() {
      return dataMap;
     }


    }

  4. <%@ 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 'testJson.jsp' starting page</title>
       
     <meta http-equiv="pragma" content="no-cache">
     <meta http-equiv="cache-control" content="no-cache">
     <meta http-equiv="expires" content="0">   
     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
     <meta http-equiv="description" content="This is my page">
     <script type="text/javascript" src="js/jquery-1.9.0.js"></script>
     <!--
     <link rel="stylesheet" type="text/css" href="styles.css">
     -->

      </head>
      <script type="text/javascript">
     $(function(){
      $("#json").click(function(){
      $.ajax({
       type : "post",//发送方式      
       url : "example/getJsonData",// 路径  
       success : function(dataRole) {
        /*var obj = $.parseJSON(dataRole);*/
        var obj = eval("(" + dataRole + ")");
        alert(dataRole);
       }
      });
      })
     /****************/ 
      $("#json2").click(function(){
      $.ajax({
       type : "post",//发送方式      
       url : "example/getJsonData2",// 路径  
       success : function(dataRole) {
        /*var obj = $.parseJSON(dataRole);*/
        var obj = eval("(" + dataRole + ")");
        alert(obj.user);
       }
      });
      })
     });
     
     /* {"jsonData":"success","user":{"age":10,"birDate":"2013-05-22T10:13:11","name":"yy"}} */
      </script>
      <body>
        This is my JSP page. <br>
        <input type="button" value="testJson" id="json">
        <input type="button" value="testJson" id="json2">
        <div id="testjson"></div>
      </body>
    </html>
    <!-- {"success":true,"user":{"age":10,"birDate":"2013-05-22T10:43:43","name":"yllly"}}
    {"success":true,"user":{"age":10,"birDate":"2013-05-22T10:44:07","name":"ylll222y"} -->

注意:在第二种的<param name="root">dataMap</param>可以只将该参数的做指定的Action属性序列化成JSON字符串,返回给客户端。,不再把整个Action对象序列化成JSON字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值