如何从spring mvc中的控制器类返回两个列表

时间:2015-06-13 04:16:34

标签: java hibernate jsp spring-mvc tiles

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

maintab has 

maitabId ,main_tab_name

subtab has:
sub_tb_ID  ,main_tb_id,subtab_name ,Url

我想得到两个列表containsig list1 = maintabid& maintabname

list2=subtabname,maintabID & url

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

我累了

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

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

        return "maintab";
    }

如何通过一种方法返回子标签和主标签......

2 个答案:

答案 0 :(得分:2)

为什么你只想返回一个列表,而是使用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();
}

编辑:

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

你可以使用

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

你也可以使用迭代器遍历列表。

答案 1 :(得分:1)

这样做的一种方法是拥有一个dto。 Dto模式是指您的数据不适合您的方法。 所以你可以拥有这样的课程

awk -F= 'NR == FNR{a[$1] = $2; next} {print a[$1]}' file2 file1
LONDON
LONDON
LONDON
TOKYO
TOKYO
TOKYO
TOKYO
WASHINGTON DC
WASHINGTON DC
WASHINGTON DC

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