有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在SpringMVC中从控制器类返回两个列表

我有两个表调用maintab,subtab用于生成菜单栏

maintab has 

maitabId ,main_tab_name

subtab has:
sub_tb_ID  ,main_tb_id,subtab_name ,Url

我想得到两个列表,其中包含list1=maintabid&;maintabname

list2=subtabname,maintabID & url

我想使用SpringMVC返回两个列表。并在jsp页面中检索以填充菜单。请给我一个控制器类和jsp的代码:我在这个示例中使用hibernate和tile

我累了

public String listmaintabAndsubtabs(Map<String, Object> map) {

        map.put("maintab", new maintab());
        map.put("maintabList", contactService.listmaintab());

        return "maintab";
    }

如何通过一种方法返回子选项卡和主选项卡


共 (2) 个答案

  1. # 1 楼答案

    为什么只想返回一个列表,请改用map

    在控制器中,您可以使用

    Map mp = new HashMap();
    
    mp.put("list1", lst1);
    mp.put("list2", lst2);
    
    return mp;
    

    在jsp中,可以迭代映射

    for (Map.Entry<> entry : mp.entrySet()) {
        String listKey = entry.getKey();
        List<> childLst = entry.getValue();
    }
    

    编辑:

    一旦你有了两个列表,你可以用多种方式迭代它们

    你可以用

    对于(X obj:childLst){//X表示列表包含的对象的类 系统出来println(obj); }

    您还可以使用迭代器在列表中循环

  2. # 2 楼答案

    一种方法是使用dto。 Dto模式是指当您的数据不适合您处理它们的方法时。 所以你可以上这样的课

    public class MenuDto {
          private List list1;
          private List list2;          
    
          your accessor method for list1 & list2
    }
    

    然后控制器中的方法就可以传递一个MenuDto实例