Код, который вы разместили (и отредактировал), синтаксически действителен, поэтому проблема кроется в другом месте.
Для начала суффикс Id
заставляет меня думать, что на самом деле это Number
.Фактически, недесятичные числа в EL по умолчанию long
.Таким образом, если бы это было Map<Integer, Integer>
, то этот код не будет работать.Вам нужно иметь Map<Long, Long>
или Map<Long, Integer>
, чтобы заставить его работать.
Я не уверен, как мне следует интерпретировать вашу формулировку "кодирование ужасов", но я уверен, что вы уже знаете, что с помощью JSTLSQL taglib для других целей, кроме быстрого прототипирования, считается очень плохой практикой;) Эта логика принадлежит реальным классам Java на уровне доступа к данным.