带struts2的多级树

带struts2的多级树,struts2,struts2-jquery,Struts2,Struts2 Jquery,我是Struts2和jQuery的新手 我正在尝试用TreeTagstruts2 jquery创建一棵树 但我试着做两个层次 这是我的密码 在行动中 public class TreeCategoriasAction extends ActionSupport { private static final long serialVersionUID = 1421993767228006685L; private FMCategorias fMCategorias; public FMCat

我是Struts2和jQuery的新手

我正在尝试用
TreeTag
struts2 jquery创建一棵树

但我试着做两个层次

这是我的密码

在行动中

public class TreeCategoriasAction extends ActionSupport {

private static final long serialVersionUID = 1421993767228006685L;

private FMCategorias fMCategorias;

public FMCategorias getCategorias() { return fMCategorias; }

private TreeNode nodes = new TreeNode();


public String execute() throws Exception {
    SmpConsultaCategorias smpConsultaCategorias = new SmpConsultaCategorias();
    smpConsultaCategorias.setCategoriaFilter(new SoCategoriaFilter());
    smpConsultaCategorias.getCategoriaFilter().setCoIdioma(ActionContext.getContext().getLocale().getLanguage().toUpperCase());
    SWGestionarCategoriasProxy proxy = new SWGestionarCategoriasProxy(TiendaWebProperties.getProperty(TiendaWebProperties.SERVICIO_CATEGORIAS_ENDPOINT));
    SoCategoria[] soCategoriaArray = proxy.consultaCategorias(smpConsultaCategorias);
    fMCategorias = Mapeador.mapear(soCategoriaArray);
    ServletActionContext.getRequest().setAttribute("categorias", fMCategorias);
     nodes.setId("Categorias");
     nodes.setState(TreeNode.NODE_STATE_OPEN);
     nodes.setTitle("Categorias");
     TreeNode [] nodo = new TreeNode[soCategoriaArray.length];
     Collection<TreeNode> children = new ArrayList<TreeNode>();
    for (int i = 0; i < soCategoriaArray.length; i++) {
        if (soCategoriaArray[i].getIdCategoriaPadre() == null) {

            nodo[i]=new TreeNode();
            nodo[i].setId(soCategoriaArray[i].getIdCategoria());
            nodo[i].setState(TreeNode.NODE_STATE_OPEN);
            nodo[i].setTitle(soCategoriaArray[i].getDeCategoria());             
            children.add(nodo[i]);


        for (int j = 0; j < soCategoriaArray.length; j++){
            if (soCategoriaArray[j].getIdCategoriaPadre() == soCategoriaArray[i].getIdCategoria()){
                Collection<TreeNode> children2 = new ArrayList<TreeNode>();

                nodo[j]=new TreeNode();

                nodo[j].setId(soCategoriaArray[j].getIdCategoria());
                nodo[j].setState(TreeNode.NODE_STATE_CLOSED);
                nodo[j].setTitle(soCategoriaArray[j].getDeCategoria());             
                children2.add(nodo[j]);
                nodo[i].setChildren(children2);
            }
        }
        }
        nodes.setChildren(children);
    }


    return SUCCESS;
}



public TreeNode getNodes() {
    return nodes;
}




}
公共类TreeCategoriaAction扩展了ActionSupport{
私有静态最终长serialVersionUID=1421993767228006685L;
私有FMCategorias FMCategorias;
public FMCategorias getCategorias(){return FMCategorias;}
私有树节点=新树节点();
公共字符串execute()引发异常{
SmpConsultaCategorias SmpConsultaCategorias=新SmpConsultaCategorias();
smpConsultaCategorias.setCategoriaFilter(新的SoCategoriaFilter());
smpConsultaCategorias.getCategoriaFilter().setCoIdioma(ActionContext.getContext().getLocale().getLanguage().toUpperCase());
SWGESTIONARCATEGARIASPROXY代理=新的SWGESTIONARCATEGARIASPROXY(TiendaWebProperties.getProperty(TiendaWebProperties.SERVICIO_CATEGARIAS_端点));
SoCategoria[]soCategoriaArray=proxy.consultaCategorias(smpConsultaCategorias);
fMCategorias=Mapeador.mapear(soCategoriaArray);
ServletActionContext.getRequest().setAttribute(“categorias”,fMCategorias);
nodes.setId(“Categorias”);
nodes.setState(TreeNode.NODE\u STATE\u OPEN);
节点。设置标题(“分类”);
TreeNode[]nodo=新的TreeNode[soCategoriaArray.length];
集合子项=新的ArrayList();
对于(int i=0;i
在jsp中

<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<%@ taglib prefix="sjt" uri="/struts-jquery-tree-tags"%>
<%@taglib prefix="s" uri="/struts-tags" %>

<sj:head jqueryui="true" customBasepath="css" jquerytheme="jquery_tree_ui"debug="true" />
    <s:url var="treeCategoriasUrl" action="TreeCategorias.action"/>
    <sjt:tree 
            id="treeDynamicAjax" 
            jstreetheme="apple" 
            rootNode="nodes" 
            nodeHref="%{echo}"                   
            nodeTitleProperty="title" 
            nodeIdProperty="id" 
            nodeHrefParamName="echo"
            childCollectionProperty="children"
            />
            <s:iterator value=#nodo[i]>
            <sjt:tree
            id="treeDynamicAjax2" 
            jstreetheme="apple" 
            rootNode="#nodo[i]" 
            nodeHref="%{echo}"                   
            nodeTitleProperty="title" 
            nodeIdProperty="id" 
            nodeHrefParamName="echo"
            childCollectionProperty="children2"
            />
            </s:iterator>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<%@ taglib prefix="sjt" uri="/struts-jquery-tree-tags"%>
%@taglib prefix="s" uri="/struts-tags" %>

<sj:head jqueryui="true" customBasepath="css" jquerytheme="jquery_tree_ui" debug="true" />
    <s:url var="treeCategoriasUrl" action="TreeCategorias.action"/>
    <sjt:tree 
            id="treeDynamicAjax" 
            jstreetheme="apple" 
            rootNode="nodes" 
            nodeHref="%{echo}"                   
            nodeTitleProperty="title" 
            nodeIdProperty="id" 
            nodeHrefParamName="echo"
            childCollectionProperty="children"
            />

仅适用于第一个和第一棵树

有人能帮我吗?

正在行动中

nodes.setId("Bricor");
nodes.setState(TreeNode.NODE_STATE_OPEN);
nodes.setTitle("Bricor");
getTreeNode (soCategoriaArray, nodes, null);
private void getTreeNode(SoCategoria[] soCategoriaArray, TreeNode nodoPadre, String idCategoriaPadre) {
    List<TreeNode> nodos = new ArrayList<TreeNode>();
    for (int i = 0; i < soCategoriaArray.length; i++){

        if ((idCategoriaPadre == null && soCategoriaArray[i].getIdCategoriaPadre() == null) || (soCategoriaArray[i].getIdCategoriaPadre() != null && soCategoriaArray[i].getIdCategoriaPadre().equals(idCategoriaPadre))){
            TreeNode nodo = new TreeNode();
            nodo.setId(soCategoriaArray[i].getIdCategoria());
            nodo.setState(TreeNode.NODE_STATE_OPEN);
            nodo.setTitle(soCategoriaArray[i].getDeCategoria());                
            nodos.add(nodo);

            getTreeNode(soCategoriaArray, nodo, soCategoriaArray[i].getIdCategoria());

        }


    }
    nodoPadre.setChildren(nodos);
nodes.setId(“Bricor”);
nodes.setState(TreeNode.NODE\u STATE\u OPEN);
节点。设置标题(“Bricor”);
getTreeNode(soCategoriaArray,节点,null);
私有void getTreeNode(SoCategoria[]soCategoriaArray,TreeNode nodoPadre,String idcategoriaapadre){
List nodos=new ArrayList();
对于(int i=0;i
}

在jsp中

<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<%@ taglib prefix="sjt" uri="/struts-jquery-tree-tags"%>
<%@taglib prefix="s" uri="/struts-tags" %>

<sj:head jqueryui="true" customBasepath="css" jquerytheme="jquery_tree_ui"debug="true" />
    <s:url var="treeCategoriasUrl" action="TreeCategorias.action"/>
    <sjt:tree 
            id="treeDynamicAjax" 
            jstreetheme="apple" 
            rootNode="nodes" 
            nodeHref="%{echo}"                   
            nodeTitleProperty="title" 
            nodeIdProperty="id" 
            nodeHrefParamName="echo"
            childCollectionProperty="children"
            />
            <s:iterator value=#nodo[i]>
            <sjt:tree
            id="treeDynamicAjax2" 
            jstreetheme="apple" 
            rootNode="#nodo[i]" 
            nodeHref="%{echo}"                   
            nodeTitleProperty="title" 
            nodeIdProperty="id" 
            nodeHrefParamName="echo"
            childCollectionProperty="children2"
            />
            </s:iterator>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<%@ taglib prefix="sjt" uri="/struts-jquery-tree-tags"%>
%@taglib prefix="s" uri="/struts-tags" %>

<sj:head jqueryui="true" customBasepath="css" jquerytheme="jquery_tree_ui" debug="true" />
    <s:url var="treeCategoriasUrl" action="TreeCategorias.action"/>
    <sjt:tree 
            id="treeDynamicAjax" 
            jstreetheme="apple" 
            rootNode="nodes" 
            nodeHref="%{echo}"                   
            nodeTitleProperty="title" 
            nodeIdProperty="id" 
            nodeHrefParamName="echo"
            childCollectionProperty="children"
            />

%@taglib prefix=“s”uri=“/struts tags”%%>
您读过树标记文档吗:?