JAVA 백 엔 드 를 트 리 구조 데이터 로 변환 하여 프론트 엔 드 에 되 돌려 주 는 실현 방법

우 리 는 나무 모양 을 자주 사용 합 니 다.그러면 나무 구조의 데 이 터 는 프론트 에서 합 니까?아니면 백 스테이지 에서 합 니까?저 는 전단 의 ztree,selectTree 등 전단 에 속 하 는 구성 요 소 를 사용 한 적 이 있 습 니 다.백 스테이지 에 서 는 표 의 모든 데 이 터 를 전단 에 되 돌려 주면 됩 니 다.전단 은 id,pid 를 통 해 등급 구 조 를 구분 할 수 있 습 니 다.만약 에 우리 전단 에 백 스테이지 가 필요 하면 트 리 구조 데 이 터 를 직접 되 돌려 주 는 것 이 어 떻 습 니까?그러면 제 가 쓴 예 를 소개 하 겠 습 니 다.
우 리 는 먼저 그림 한 장 을 보고 나무 구 조 를 알 아 보 자.나 는 여기 서 그림 한 장 을 찾 아서 알 아 보면 된다.

다음은 id,pid,이름 을 포함 한 데 이 터 를 살 펴 보 겠 습 니 다.

다음 에 우 리 는 작은 예 를 써 서 재 귀 방식 으로 숫자 로 바 꾸 었 다.
실체:

package cn.ccccltd.ccccoi.mediumterminvestment.domain;

import java.io.Serializable;
import java.util.List;

/**
 * @Description:    ,    
 * @author yujiaqi
 * @date: 2019 9 9   2:07:19
 */
public class ProjectBasicInfoDTO implements Serializable {

  private static final long serialVersionUID = 1L;

  private String id;
  private String pId;
  private String key;
  private String title;
  private String value;
  private List<ProjectBasicInfoDTO> children;
  private Boolean selectable;
  private Boolean disableCheckbox;
  private Boolean disabled;
  
  
  public String getId() {
    return id;
  }
  public String getValue() {
    return value;
  }
  public void setValue(String value) {
    this.value = value;
  }
  public void setId(String id) {
    this.id = id;
  }
  public String getpId() {
    return pId;
  }
  public void setpId(String pId) {
    this.pId = pId;
  }
  public String getKey() {
    return key;
  }
  public void setKey(String key) {
    this.key = key;
  }
  public String getTitle() {
    return title;
  }
  public void setTitle(String title) {
    this.title = title;
  }
  public List<ProjectBasicInfoDTO> getChildren() {
    return children;
  }
  public void setChildren(List<ProjectBasicInfoDTO> children) {
    this.children = children;
  }
  public Boolean getSelectable() {
    return selectable;
  }
  public void setSelectable(Boolean selectable) {
    this.selectable = selectable;
  }
  
  public Boolean getDisableCheckbox() {
    return disableCheckbox;
  }
  public void setDisableCheckbox(Boolean disableCheckbox) {
    this.disableCheckbox = disableCheckbox;
  }
  public Boolean getDisabled() {
    return disabled;
  }
  public void setDisabled(Boolean disabled) {
    this.disabled = disabled;
  }
  public static long getSerialversionuid() {
    return serialVersionUID;
  }
}
서비스 구현 클래스

/**
   *           
   */
   @Override
   public List<ProjectBasicInfoDTO> queryFundingSource() {
     //          
     List<DictionaryBean> list = projectBasicInfoMapper.queryDictionaryBean(Constant.FUNDING_SOURCE,Constant.DELFLAG);
     List<ProjectBasicInfoDTO> dataProcessing = ProjectBasicInfoServiceImpl.dataProcessing(list);
     List<ProjectBasicInfoDTO> buildByRecursive = TreeUtils.buildByRecursive(dataProcessing);
     return buildByRecursive;
   }
  
  
  /**
   *          ProjectBasicInfoDTO   
   * @param list
   * @return
   */
  public static List<ProjectBasicInfoDTO> dataProcessing(List<DictionaryBean> list){
    List<ProjectBasicInfoDTO> list1 = Lists.newArrayList();
    for (DictionaryBean dictionaryBean : list) {
      ProjectBasicInfoDTO projectBasicInfoDTO = new ProjectBasicInfoDTO();
      projectBasicInfoDTO.setId(dictionaryBean.getItemId());
      projectBasicInfoDTO.setpId(dictionaryBean.getItemParentId());
      projectBasicInfoDTO.setKey(dictionaryBean.getItemId());
      projectBasicInfoDTO.setTitle(dictionaryBean.getItemFullName());
      projectBasicInfoDTO.setValue(dictionaryBean.getItemFullName());
      projectBasicInfoDTO.setSelectable(false);
      projectBasicInfoDTO.setDisableCheckbox(true);
      projectBasicInfoDTO.setDisabled(true);
      list1.add(projectBasicInfoDTO);
    }
    return list1;
  }
재 귀적 방법 도구 클래스

package cn.ccccltd.ccccoi.mediumterminvestment.util;

import java.util.ArrayList;
import java.util.List;

import cn.ccccltd.ccccoi.mediumterminvestment.domain.ProjectBasicInfoDTO;

public class TreeUtils {
  /**
   *         
   * @param treeNodes
   * @return
   */
  public static List<ProjectBasicInfoDTO> buildByRecursive(List<ProjectBasicInfoDTO> projectBasicInfoDTOs) {
    List<ProjectBasicInfoDTO> trees = new ArrayList<ProjectBasicInfoDTO>();
    for (ProjectBasicInfoDTO projectBasicInfoDTO : projectBasicInfoDTOs) {
      if ("".equals(projectBasicInfoDTO.getpId()) || projectBasicInfoDTO.getpId() == null ) {
        trees.add(findChildren(projectBasicInfoDTO,projectBasicInfoDTOs));
      }
    }
    return trees;
  }
  
  /**
  *        
  * @param treeNodes
  * @return
  */
  public static ProjectBasicInfoDTO findChildren(ProjectBasicInfoDTO projectBasicInfoDTO,List<ProjectBasicInfoDTO> projectBasicInfoDTOs) {
    for (ProjectBasicInfoDTO projectBasicInfoDTO2 : projectBasicInfoDTOs) {
      if(projectBasicInfoDTO.getId().equals(projectBasicInfoDTO2.getpId())) {
        if(projectBasicInfoDTO.getChildren() == null) {
          projectBasicInfoDTO.setChildren(new ArrayList<ProjectBasicInfoDTO>());
        }
        //       ,           ,         
        projectBasicInfoDTO.getChildren().add(findChildren(projectBasicInfoDTO2,projectBasicInfoDTOs));
      }
    }
    return projectBasicInfoDTO;
  }
}
트 리 구조 효과 도

JAVA 백 엔 드 를 트 리 구조 데이터 로 변환 하여 프론트 엔 드 에 되 돌려 주 는 실현 방법 에 관 한 글 은 여기까지 소개 되 었 습 니 다.더 많은 JAVA 변환 트 리 구조 가 프론트 엔 드 로 되 돌아 가 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 읽 어 주시 기 바 랍 니 다.앞으로 도 많은 지원 바 랍 니 다!

좋은 웹페이지 즐겨찾기