Мне нужно отобразить значение, которое находится внутри Map
, а Карта внутри List
.Прямо сейчас, Мои значения отображаются, но в виде столбцов (как показано на sceenshot).не в виде строки, я хочу отобразить все значения в виде столбца
Как видно на изображении выше, возьмите первую запись, 100 должнобыть сопоставленным со столбцом Pay Code. BASIC PAY должен быть сопоставлен с описанием 25300, должно быть сопоставлено с Amount и 2, бесполезно, я не хочу, чтобы это больше отображалось.
мой сервисный метод, который выбирает данные:
public List<Map<String, Object>> searchPayCodeByempCode(String tabSuffix, String empCode, String yyyyMm) {
MapSqlParameterSource param = new MapSqlParameterSource();
String tableName = "Salary_detail_report_082018";
String query = "SELECT "
+ " DISTINCT PAY_CODE, "
+ " PAY_CODE_DESC, "
+ " AMOUNT, "
+ " row_number() over (Order by EMP_CODE ) AS ROW_NUM "
+ " FROM " + tableName
+ " WHERE EMP_CODE=" + empCode
+ " AND YYYYMM=" + yyyyMm
+ " AND PAY_CODE NOT IN (997,998,999) "
+ " ORDER BY PAY_CODE ASC ";
List<Map<String, Object>> employees = queryForList(query);
if (employees != null && !employees.isEmpty()) {
for (Map<String, Object> employee : employees) {
System.out.println("The set is: " + employee.keySet());
for (Iterator<Map.Entry<String, Object>> it = employee.entrySet().iterator(); it.hasNext();) {
Map.Entry<String, Object> entry = it.next();
String key = entry.getKey();
Object value = entry.getValue();
System.out.println(key + " = " + value);
}
}
}
return employees;
Код JSP:
<table class="table table-striped table-bordered dataTable no-footer tableWidth" role="grid" name="employeeList" id="employeeList">
<thead>
<tr>
<th width="5%">S. No.</th>
<th width="10%">Pay Code</th>
<th width="15%">Description</th>
<th width="10%">Amount</th>
</tr>
</thead>
<tbody>
<c:forEach var="map" items="${mapList}">
<c:forEach var="mapEntry" items="${map}">
<tr>
<%--<td>test : ${mapEntry.key}</td>--%>
<td>test : ${mapEntry.value}</td>
</tr>
</c:forEach>
</c:forEach>
</tbody>
</table>
Ожидаемый результат: