Criando menu dinamico

0 respostas
E

Boa tarde, gostaria de ajuda para criar um menu dinamico eu tenho o seguinte código:

public List<Menu> menuDinamico() throws Exception{
        PreparedStatement ps;
        Connection conn;
        ResultSet rs;
        String modulo = "1";
        
        try{
            String sql = "SELECT mn.i_menu, mn.nome, mn.i_pai, mn.ordem, mn.url, mn.janela, " +
                    "mn.i_modulo, (SELECT COUNT(*) FROM menu m WHERE m.i_pai = mn.i_menu) AS totalsub " +
                    "FROM menu mn WHERE mn.i_pai = 0 and mn.i_modulo = ? ORDER BY mn.ordem"; 
            
            conn = this.conn;
            ps = conn.prepareStatement(sql);
            ps.setInt(1, Integer.parseInt(modulo));
            rs = ps.executeQuery();
            
            List<Menu> mnDinamico = new ArrayList<Menu>();
            
            while(rs.next()){
                Menu menu = new Menu();
                
                menu.setiMenu(rs.getInt("i_menu"));
                menu.setNome(rs.getString("nome"));
                menu.setiPai(rs.getInt("i_pai"));
                menu.setOrdem(rs.getInt("ordem"));
                menu.setUrl(rs.getString("url"));
                menu.setJanela(rs.getString("janela"));
                menu.setiModulo(rs.getInt("i_modulo"));
                
                mnDinamico.add(menu);
                
            }
            
            return mnDinamico;
        }catch(SQLException sqle){
            throw new Exception(sqle);
        }
    }


    public List<Menu> criaMenuDinamico(Integer idMenu) throws Exception{
        PreparedStatement ps;
        Connection conn;
        ResultSet rs;
        
        try{
            String sql = "SELECT mn.i_menu, mn.nome, mn.i_pai, mn.ordem, mn.url, mn.janela, " +
                    "mn.i_modulo, (SELECT COUNT(*) FROM menu m WHERE m.i_pai = mn.i_menu) AS totalsub " +
                    "FROM menu mn WHERE mn.i_pai = ? ORDER BY mn.ordem"; 
            
            conn = this.conn;
            ps = conn.prepareStatement(sql);
            ps.setInt(1, idMenu);
            rs = ps.executeQuery();
            
            List<Menu> subMnDinamico = new ArrayList<Menu>();
            
            while(rs.next()){
                Integer iMenu = rs.getInt("i_menu");
                String nome = rs.getString("nome");
                Integer iPai = rs.getInt("i_pai");
                Integer ordem = rs.getInt("ordem");
                String url = rs.getString("url");
                String janela = rs.getString("janela");
                Integer iModulo = rs.getInt("i_modulo");
                
                subMnDinamico.add(new Menu(iMenu, nome, iPai, ordem, url, janela, iModulo));
                
                if(rs.getInt(7) > 0){
                    Menu subMenu = new Menu();
                    subMenu = criaMenuDinamico(rs.getInt(1));
                    menu.setMenu(subMenu);
                }
            }
            
            return subMnDinamico;
        }catch(SQLException sqle){
            throw new Exception(sqle);
        }
    }

separado essas funções me retornam o valor correto, agora gostaria de saber uma forma de unir assim por exemplo:

<ul>
     <li>Cadastro</li>
     <ul>
          <li>Pessoa</li>
          <li>Funcionario</li>
     </ul>
</ul>

grato.

Criado 19 de agosto de 2011
Respostas 0
Participantes 1