一只会飞的白菜 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 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器