如何在 spring mvc 中 return 来自控制器 class 的两个列表

how to return two lists from controller class in spring mvc

我有两个表调用 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

我想 return 使用 spring mvc 的两个列表。并在 jsp 页面中检索以填充 menu.Please 给我一个控制器代码 class 和 jsp:我对这个示例使用休眠和平铺。

我累了

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

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

        return "maintab";
    }

如何通过一种方法return 子选项卡和主选项卡....

为什么要return只有一个列表,改用地图。

在你的控制器中你可以使用,

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();
}

编辑:

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

你可以使用

for (X obj: childLst) { // X表示列表包含的对象的class System.out.println(对象); }

您还可以使用迭代器循环遍历列表。

实现此目的的一种方法是拥有一个 dto。 Dto 模式是指您的数据不适合您处理它们的方法。 所以你可以有一个像这样的class

public class MenuDto {
      private List list1;
      private List list2;          

      your accessor method for list1 & list2
}

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