struts2+json+jquery

package com.gtercn.ecard.action.organization;

import java.util.List;

import net.sf.json.JSONObject;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import com.gtercn.ecard.bean.vo.OrganizationVO;
import com.gtercn.ecard.common.BaseAction;
import com.gtercn.ecard.service.organization.OrgService;
import com.gtercn.ecard.util.JsonMetaData;

@Controller
public class ShowOrgAction extends BaseAction {

	private static final long serialVersionUID = 1L;
         //result为异步返回页面的结果
	private JSONObject result;

	@Autowired
	private OrgService orgService;
         //Json工具类(自定义)
	@Autowired
	JsonMetaData jsonUtil;

	@Override
	public String execute() throws Exception {
		jsonUtil = new JsonMetaData();
		
		List<OrganizationVO> fistNodes = orgService.getFirstNode();
		
		this.setResult(JsonMetaData.getJsonResult(fistNodes));
		
		return SUCCESS;
	}
         //struts默认把具有get方式的数据域传回回调函数中
	public JSONObject getResult() {
		return result;
	}
}
package com.gtercn.ecard.util;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.PropertyFilter;
import org.springframework.stereotype.Controller;
import com.gtercn.ecard.bean.organization.Organization;
import com.gtercn.ecard.bean.vo.OrganizationVO;
/**
 * json 工具类
 * 
 * @author gtercn_hpf
 * 
 */
@Controller
public class JsonMetaData {
 /**
  * 得到一个json数组
  * 
  * @param fistNodes
  * @return
  */
 public static JSONObject getJsonResult(List<OrganizationVO> fistNodes) {
  JsonConfig jsonConfig = new JsonConfig();
  JSONObject json = new JSONObject();
  json.put("data", JSONArray.fromObject(fistNodes, jsonConfig));

  return json;
 }
 
 public static JSONObject getSubNodeJson(List<Organization> nodes) {
  JsonConfig jsonConfig = new JsonConfig();
  JSONObject json = new JSONObject();
   //字段过滤器
  jsonConfig.setJsonPropertyFilter(new PropertyFilter() {
   @Override
   public boolean apply(Object source, String name, Object value) {
    System.out.println(name);
    if (source != null) {
     if (name.equals("orgTitles") || name.equals("persons")) {
      return true;
     }
    }
    return false;
   }
  });
  json.put("data", JSONArray.fromObject(nodes, jsonConfig));
  
  return json;
 }
}
页面ajax代码
function showOrg(){
 $.ajax({
   type:"POST",
   url:"showOrg.action",
   success:function(msg){
//默认返回的为字符串,需要把字符串转化为json对象
    var backMsg=eval("("+msg+")");
    var tree=backMsg.result.data;
    var zNodes=[];
   for(var i=0;i<tree.length;i++){
    var c = {"id":tree[i]["id"],"pId":tree[i]["pId"],"name":tree[i]["name"],"open":true,"click":"showChildrenNodes('"+tree[i]["id"]+"');"};
    zNodes.push(c);
   }
   $.fn.zTree.init($("#treeDemo"), setting,zNodes);
   }
 });
  }

 

时间有限就先记录这些把。。。 把javabean转化为json时会碰到hibernate的懒加载问题,可以opensessioninvew 这样懒加载的时候session不会关闭,再就是过滤掉乱连字段,注意大小写问题!!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值