一只会飞的白菜 2017-09-01 11:38 采纳率: 0%
浏览 360

json ssh ztree 无数据返回到页面

 package com.action;

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.query.Query;
import org.springframework.beans.factory.annotation.Autowired;

import com.alibaba.fastjson.JSON;
import com.base.BaseService;
import com.entity.Administrator;
import com.entity.PowerEntity;
import com.instrument.Parameter;

public class IndexAction {
    @Autowired
    BaseService baseservice;

    @Autowired
    SessionFactory sessionFactory;

    List<String> pnamelist = new ArrayList<String>();

    List<ZtreeJS> ztreelist = null;

    @Action(value = "index", results = { @Result(name = "success", location = "/WEB-INF/jsp/index.jsp"),
            @Result(name = "defeated", location = "/login.jsp") })
    // 登录的方法
    public String index() {
        HttpServletRequest request = ServletActionContext.getRequest();
        Parameter.CoustomParameter(Administrator.class, request);
        String hql = "from admin where account=? and apassword=? ";
        Session session = sessionFactory.openSession();
        Query<Administrator> query = session.createQuery(hql);
        query.setParameter(0, request.getParameter("username"));
        query.setParameter(1, request.getParameter("password"));
        List<Administrator> adminlist = query.list();
        if (adminlist.size() > 0) {
            System.err.println("登录成功");
            session.close();
            for (Administrator administrator : adminlist) {
                qureyPostId(administrator.getAid());
            }
            return "success";
        } else {
            System.err.println("登录失败");
            session.close();
            return "defeated";
        }

    }

    public void qureyPostId(int uid) {
        List<Integer> pidlist = new ArrayList();
        Session session = sessionFactory.openSession();
        Query<Object[]> query = session.createQuery("select r.rid from role r  join r.listadmin u  where u.aid=" + uid);
        List<Object[]> userlist = query.list();
        for (Object ob : userlist) {
            pidlist.add((Integer) ob);
            session.close();
        }
        qureyjuriId(pidlist);
        session.close();
    }

    public void qureyjuriId(List<Integer> pidlist) {
        List<Integer> powerlist = new ArrayList();
        Session session = sessionFactory.openSession();
        int pidlsitsize = pidlist.size() - 1;
        Query<Object[]> query = session.createSQLQuery("select pid from role_power p where rid=" + pidlist.get(pidlsitsize));
        List<Object[]> userlist = query.list();
        for (Object ob : userlist) {
            powerlist.add((Integer) ob);
            session.close();
        }
        qureyjuriName(powerlist);
        session.close();
    }

    public void qureyjuriName(List<Integer> jidlist) {
        pnamelist = new ArrayList();
        Session session = sessionFactory.openSession();
        for (Integer integer : jidlist) {
            Query<PowerEntity> query = session.createQuery("from power p where p.pid=" + integer);
            List<PowerEntity> userlist = query.list();
            for (PowerEntity ob : userlist) {
                pnamelist.add(ob.getPname());
            }
        }
        for (String integer : pnamelist) {
            System.out.println(integer);
        }
        session.close();
    }

    @Action(value = "ztree")
    public void ztree() {
        HttpServletResponse response = ServletActionContext.getResponse();
        List<ZtreeJS> ztreelist = new ArrayList<ZtreeJS>();
        for (String string : pnamelist) {
            ZtreeJS z = new ZtreeJS();
            z.setName(string);
            ztreelist.add(z);
        }
        String data = JSON.toJSONString(ztreelist);
        try {
            response.setCharacterEncoding("UTF-8");
            PrintWriter out = response.getWriter();
            out.write(data);
            out.flush();
            out.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

 后台查询有数据,前台接收不了,
  • 写回答

1条回答 默认 最新

  • 菜鸟才能学的更多 2023-02-15 14:48
    关注

    根据您提供的代码,可以看出在登录成功后,执行了查询操作,并将查询到的数据存储到了 pnamelist 集合中,然后在 ztree 方法中将 pnamelist 转换为 ztreelist,并使用 JSON 序列化转换为字符串返回到前端。

    如果前端没有接收到数据,可能是以下原因:

    1. 前端接收数据的方式不正确。可以检查前端代码是否正确,是否正确处理了接收到的数据。
    2. 前端没有发送请求到 ztree 方法。可以检查前端代码是否正确,是否调用了 ztree 方法,是否发送了请求到正确的 URL。
    3. 后台没有正确返回数据。可以在后台代码中加入日志,查看是否查询到了正确的数据,并将其转换为了正确的格式。
    4. 后台返回的数据无法正确转换为 JSON 字符串。可以检查后台返回的数据是否包含无法转换为 JSON 格式的数据类型,如日期、自定义对象等。

    您可以根据以上可能出现的问题进行排查和调试。

    评论

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧