Pessoal,
Estou tentando fazer um menu dinâmico com dados vindo de um banco mysql, a logíca já está toda pronta, até com a ajuda de alguns GUJ's aqui.
meu metodo abaixo imprimi um menu com submenus já em formato HTML, essa minha lista de menus é uma String.
Como mostrar essa string em uma página jsp de uma forma que o jsp já incorporace o html, ou seja, já me mostre no formato de html.
String retornada:
<ul>
<li><a href='Evento'>Home</a></li>
<li><a href='Evento'>Concessionário</a><ul>
<li><a href='Evento'>Fiat</a><ul>
<li><a href='Evento'>Uno</a></li>
<li><a href='-'>Bravoo</a></li>
</ul></li>
<li><a href='Evento'>Gm</a><ul>
<li><a href='Event'>Camaro</a></li>
<li><a href='-'>Celta</a></li>
</ul></li>
</ul></li>
<li><a href='evento'>Produtos</a><ul>
<li><a href='-'>Teste</a></li>
</ul></li>
<li><a href='Evento'>About</a><ul>
<li><a href='-'>Teste2</a></li>
</ul></li>
</ul>
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
//faz conexao
Connection conn = ConnetionFactory.getConnection();
Menu menu = new Menu();
MenuDao cdao = new MenuDao(conn);
ArrayList<Menu> lista = new ArrayList<Menu>();
lista = cdao.select();
//cdao.organizarMenu(lista, 0);
System.out.println(toHtmlString(lista, 0));
}
public ArrayList<Menu> select()throws Exception{
ArrayList<Menu> lista = new ArrayList<Menu>();
String sql = "select * from menu ";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
Menu menu = null;
while(rs.next()){
menu = new Menu();
menu.setId((rs.getInt("ID")));
menu.setNome((rs.getString("Nome")));
menu.setAction(rs.getString("Action"));
menu.setPai(rs.getInt("Pai"));
lista.add(menu);
}
rs.close();
return lista;
}
private static StringBuilder toHtmlString(List<Menu> list, int pai){
StringBuilder result = new StringBuilder();
boolean exist = false;
for (Menu m:list){
if(m.getPai() == pai){
if (!exist){
result.append("<ul>"+"\n");
exist = true;
}
result.append("<li><a href='").append(m.getAction()).append("'>").append(m.getNome()).append("</a>");
result.append(toHtmlString(list,m.getId()));
result.append("</li>"+"\n");
}
}
if (exist){
result.append("</ul>");
}
return result;
}
}