首先需导入包:ezmorph-1.0.4.jar

Action中的调用的方法:

public void getObject(){
  try {
   if(cname!=null&& !cname.equals("")){
    u=udao.findByName(cname);
    JSONObject obj=new JSONObject();
    obj.put("house", u.getHouse());//u是一个User对象
    actionUtil.sendStringToClient(obj.toString());
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

Json的封装类:

public class ActionUtil {
 /**
  * 将指定的字符串发送到客户端
  *
  * @param content
  * @throws Exception
  */
 public void sendStringToClient(String content) throws Exception {
  HttpServletResponse response = ServletActionContext.getResponse();
  response.setContentType("text/html;charset=UTF-8");
  response.getWriter().write(content);
 }
 
 public void sendSuccessToClient() throws Exception{
  this.sendStringToClient("success");
 }
 
 /**
  * 将List集合转换成对应的Json字符串
  * @param list 待转换的List集合
  * @return Json字符串
  * @throws Exception
  */
 public String generJsonStringFromList(List list) throws Exception {
  JSONArray array = JSONArray.fromObject(list);
  return array.toString();
 }
 
 public void sendJsonStringFromList(List list)throws Exception{
  this.sendStringToClient(this.generJsonStringFromList(list));
 }
}

Struts.xml中的配置:

<result-types>
   <result-type name="json" class="org.apache.struts2.json.JSONResult"></result-type>
  </result-types>

<action name="stipendObject" class="stipendformAction" method="getObject">
   <result type="json"></result>
  </action>

jsp页面中ajax:

//选择下拉列表中的某一项,其他显示框显示相应信息

function change(){

var obj = document.getElementById("name"); //定位id

var index = obj.selectedIndex; // 选中索引

var text = obj.options[index].text; // 选中文本

$.ajax({

   type:'POST',

  url:"stipendObject.action",

  data:{cname:text},

  success:function(data){     var obj=eval("("+data+")");     $("#house").val(obj.house);    }   });

}

jsp页面中的下拉列表

<s:select id="name" name="stipendform.name" list="ulist" class="input"
         listKey="id" listValue="username"  theme="simple" headerKey="0" headerValue="--------请选择员工-------"
         style="margin-bottom:5px;" onchange="change();" ></s:select>

若实现级联菜单:

二级菜单用<select id="c2" name="book.category2.id"
style="margin-bottom:5px;"><option value="">二级</option></select>

$.ajax({
type :"POST",
url : "cate2list.action",
data : {con : text},
// dataType : "json",
success : function(data) {
alert(data);
var obj = eval("(" + data + ")");
alert(obj.list);
//$("#c2").val(obj.list);
var e = document.form1.c2;
for (var i=0; i<obj.list.length; i++) e.options.add(new Option(obj.list[i], obj.list[i]));
},
error : function() {
alert('加载失败!');
}
});

public void getObject() {
try {
if (con != null && !con.equals("")) {
ActionUtil actionUtil = new ActionUtil();
JSONObject obj = new JSONObject();
c2list = c2Dao.findByCate1Id(c1Dao.findByName(con).getId());
List<String> str=new ArrayList<String>();

//将对象数组转换为字符串数组 对象数组obj.put会出错
for(int i=0;i<c2list.size();i++){
str.add(c2list.get(0).getName());
}
obj.put("list", str);
actionUtil.sendStringToClient(obj.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}

json在action,$.ajax{}中的使用的更多相关文章

  1. AJAX中的dataType(数据格式)-text、json

    因为经常使用数据格式,所以将它封装成类,J这样就不会用到时就写了,直接调用写好的类就可以了 (1)dataType数据格式为:TEXT格式的数据是字符串的数据,在"ajax对数据进行删除和查 ...

  2. Ajax中的JSON格式与php传输过程的浅析

    在Ajax中的JSON格式与php传输过程中有哪些要注意的小地方呢? 先来看一下简单通用的JSON与php传输数据的代码 HTML文件: <input type="button&quo ...

  3. 【转】AJAX中JSON数据的返回处理问题

    AJAX处理复杂数据时,便会使用JSON格式.常用在对数据库的数据查询上.在数据库查询到数据后,便可在处理页面直接将数据转为JSON格式,然后返回. 本篇主要讨论:jQuery中,JSON数据在AJA ...

  4. Ajax json交互和SpringMVC中@RequestBody

    Ajax json交互和SpringMVC中@RequestBody 标签: 背景 自己提供出去得接口中参数设置为@RequestBody VipPromotionLog vipPromotionLo ...

  5. ajax中的json和jsonp详解

    出现的问题: 花了点时间研究ajax中的json和jsonp的原理,这里记录一下.以前一直在使用ajax调用数据,但是从来没有遇到跨域问题,也从来没有注意过json和jsonp的区别,总是一通乱用.但 ...

  6. Django中数据传输编码格式、ajax发送json数据、ajax发送文件、django序列化组件、ajax结合sweetalert做二次弹窗、批量增加数据

    前后端传输数据的编码格式(contentType) 提交post请求的两种方式: form表单 ajax请求 前后端传输数据的编码格式 urlencoded formdata(form表单里的) ja ...

  7. ajax中设置contentType: “application/json”的作用

    最近在做项目交互的时候,刚开始向后台传递数据返回415,后来百度添加了 contentType:"application/json"之后返回400,然后把传输的数据格式改为json ...

  8. ajax中使用post传值数组array

    如果我们在data中想放入array的参数,根据在网上搜索的结果有如下方法,但是没有一个成功的……我还是贴出来,别人成功了,也许是我哪里不对,日后也许还有机会研究..在文章的最后贴出了转化为json的 ...

  9. ajax中加上AntiForgeryToken防止CSRF攻击

    经常看到在项目中ajax post数据到服务器不加防伪标记,造成CSRF攻击 在Asp.net Mvc里加入防伪标记很简单在表单中加入Html.AntiForgeryToken()即可. Html.A ...

  10. JSON.stringify实例应用—将对象转换成JSON类型进行AJAX异步传值

    在上一篇中,对JSON.stringify()方法有了初步的认识,并且做了一些简单的例子.本篇将进一步将JSON.stringify用在复杂些的实例中,例如如下需求: 在进jQuery AJAX异步传 ...

随机推荐

  1. Redis 笔记与总结1 安装部署

    NoSQL 使用场景: 1.对数据高并发读写 2.对海量数据的高效率存储和访问 3.对数据的高可扩展性和高可用性 Redis 通常被称为数据结构服务器,因为键可以包含字符串(strings).哈希(h ...

  2. [ PHP+jQuery ] ajax 多级联动菜单的应用:电商网站的用户地址选择功能 ( 二 ) - 仿亚马逊下拉面板

    /** jQuery version: 1.8.3 Author: 小dee Date: 2014.11.8 */ 接上一篇博客. 实现带缓存的仿亚马逊下拉面板 效果图: 图1 初始 图2 点击省份 ...

  3. PhpStorm中文教程

    PhpStorm中文教程 | 浏览:15972 | 更新:2014-06-10 21:14 1 2 3 4 5 分步阅读 PhpStorm是一款强大的IDE,非常适合于PHP开发人员及前端工程师.提供 ...

  4. Delphi dbf文件如何定位记录(即设置Table的RecNum属性来移动到该记录号)

    Delphi的table的RecNum属性,可以用来定位记录,如:self.Table1.RecNum:=23;即可以让数据库记录移动到23号记录上,但这种作用仅限于Paradox数据库,而不是dBA ...

  5. ExtJS 刷新或者重载Tree后,默认选中刷新前最后一次选中的节点代码片段

    //tree对象 var tree = Main.getPageControler().treePanel; //获取选中的节点 var node = tree.getSelectionModel() ...

  6. [daily][CentOS][yum] 删除包的同时一同清理掉安装时一起装进来的依赖包

    说起来有点绕口,这个需求是这样的. 就是我yum装A包的时候,同时安装了A的依赖包a1,a2,a3. 当我们使用yum remove A卸载A包的是,a1,a2,a3包并不会一同被卸载掉.如果他们没有 ...

  7. zabbix-agent passive

    http://www.cnblogs.com/mysql-dba/p/5010902.html http://blog.chinaunix.net/uid-29155617-id-4668602.ht ...

  8. 《黑客大曝光》实践部分——sql注入(7/8)

    SQL注入实践 由于<黑客大曝光>中涉及到形形色色的攻击方式,从软件到硬件,甚至还有物理锁的开锁教程,当中的很多教程很有趣,但是我没有相关的环境,实践起来不好操作,比如说,查点扫描我还可以 ...

  9. 添加事件(jquery)

    对盒子内部的盒子添加跟本身盒子相同的事件的时候,需要小心谨慎一点. 诸如: 从表象上看似乎没有什么太大问题,但是却存在一个致命的问题,就是每次点击box的时候,都会给test添加一个点击事件,而添加的 ...

  10. php--tp继承公共的控制器