Spring Mvc 显示来自 Jsp 中多个列表的数据
Spring Mvc display data from multiple Lists in Jsp
您好,我正在使用 Spring MVC,我正在尝试在 jsp 页面中显示来自多个列表 的一些数据 。我搜索并找到了一些类似的主题,但我无法实现我想要做的事情,而且变得更加困惑。
我的 模型 class 包含如下内容:
private String BlaBla1;
private String BlaBla2;
private List<String> Alpha;
private List<String> Beta;
.....
//getters setters
我想要的是用这两个 Lists[=48= 中的值在 jsp 中显示 table ](Alpha 和 Beta ..)列中的一个值。它们都有 相同数量 的值。
例如
<tr><td>Alpha.value1</td><td>Beta.value1</td></tr>
<tr><td>Alpha.value2</td><td>Beta.value2</td></tr>
......................................
<tr><td>Alpha.valueN</td><td>Beta.valueN</td></tr>
正如我在这里看到的那样rendering data in jsp using spring controllers and different classes
和其他一些示例,他们创建了类似的东西:List<MyObjects> objects
但 MyObjects 模型始终具有私有字符串 ... 并且 NOT 任何 List<String>..
我试图构建类似的东西
Map<String,List<String>> test = new HashMap<String,List<String>>();
然后
test.put("alfa", Alpha);
test.put("beta", Beta);
但我得到的只是使用
在 2 行和单列中显示它们
<c:forEach var="testValue" items="${test}">
<tr><td>${testValue.value}</td></tr>
</c:forEach>
请不要让我更改我的模型 class,它是 'impossible'。
我在某处看到有人说要使用 Collection,但我不确定该怎么做。
任何建议都会有用,
编码愉快!
您只需正常迭代 Alpha
列表...但使用 <c:foreach >
标记的 varStatus
属性。此 varStatus
具有(除其他外)属性 index
,它是迭代的索引以及显示 Beta
列表中相应元素所需的所有内容。代码示例:
<c:forEach var="alphaVal" items="${Alpha}" varStatus="status">
<tr><td>${alphaVal}</td><td>${Beta[status.index]}</td></tr>
</c:forEach>
model.addObject("alphaList", alpha);
model.addObject("betaList", beta);
在 jsp 中:
<c:forEach var="listItem" items="${alphaList}" varStatus="theCount" >
<tr><td>${listItem}</td><td>${betaList[theCount.index]}</td></tr>
</c:forEach>
Note : ${theCount.index}
starts with 0
${theCount.count}
starts with 1.
所以基本上你可以使用计数来迭代第二个列表。
您好,我正在使用 Spring MVC,我正在尝试在 jsp 页面中显示来自多个列表 的一些数据 。我搜索并找到了一些类似的主题,但我无法实现我想要做的事情,而且变得更加困惑。 我的 模型 class 包含如下内容:
private String BlaBla1;
private String BlaBla2;
private List<String> Alpha;
private List<String> Beta;
.....
//getters setters
我想要的是用这两个 Lists[=48= 中的值在 jsp 中显示 table ](Alpha 和 Beta ..)列中的一个值。它们都有 相同数量 的值。 例如
<tr><td>Alpha.value1</td><td>Beta.value1</td></tr>
<tr><td>Alpha.value2</td><td>Beta.value2</td></tr>
......................................
<tr><td>Alpha.valueN</td><td>Beta.valueN</td></tr>
正如我在这里看到的那样rendering data in jsp using spring controllers and different classes
和其他一些示例,他们创建了类似的东西:List<MyObjects> objects
但 MyObjects 模型始终具有私有字符串 ... 并且 NOT 任何 List<String>..
我试图构建类似的东西
Map<String,List<String>> test = new HashMap<String,List<String>>();
然后
test.put("alfa", Alpha);
test.put("beta", Beta);
但我得到的只是使用
在 2 行和单列中显示它们<c:forEach var="testValue" items="${test}">
<tr><td>${testValue.value}</td></tr>
</c:forEach>
请不要让我更改我的模型 class,它是 'impossible'。 我在某处看到有人说要使用 Collection,但我不确定该怎么做。
任何建议都会有用, 编码愉快!
您只需正常迭代 Alpha
列表...但使用 <c:foreach >
标记的 varStatus
属性。此 varStatus
具有(除其他外)属性 index
,它是迭代的索引以及显示 Beta
列表中相应元素所需的所有内容。代码示例:
<c:forEach var="alphaVal" items="${Alpha}" varStatus="status">
<tr><td>${alphaVal}</td><td>${Beta[status.index]}</td></tr>
</c:forEach>
model.addObject("alphaList", alpha);
model.addObject("betaList", beta);
在 jsp 中:
<c:forEach var="listItem" items="${alphaList}" varStatus="theCount" >
<tr><td>${listItem}</td><td>${betaList[theCount.index]}</td></tr>
</c:forEach>
Note :
${theCount.index}
starts with 0${theCount.count}
starts with 1.
所以基本上你可以使用计数来迭代第二个列表。