HTTP / HTML не понимает объекты Java. Вы должны преобразовать их в строки при размещении их в HTML, а затем преобразовать их обратно при извлечении их из параметров запроса.
String yourCollectionAsString = getAsString(yourCollection);
request.setAttribute("yourCollectionAsString", yourCollectionAsString);
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
с
<input type="hidden" name="yourCollection" value="${yourCollectionAsString}" />
и
String yourCollectionAsString = request.getParameter("yourCollection");
List<SomeObject> yourCollection = getAsObject(yourCollectionAsString);
Анализатор JSON, такой как Google Gson , может быть полезен здесь, поскольку он сериализует и десериализует объекты Java в относительно компактный формат String в одну строку кода Java (который также можно повторно использовать для JavaScript на стороне клиента , для случая, что).
Кроме того, вы также можете сохранить его в сеансе вместе с длинным уникальным автоматически сгенерированным идентификатором и вместо этого передать этот идентификатор.
String yourCollectionID = UUID.randomUUID().toString();
request.getSession().setAttribute(yourCollectionID, yourCollection);
request.setAttribute("yourCollectionID", yourCollectionID);
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
с
<input type="hidden" name="yourCollectionID" value="${yourCollectionID}" />
и
String yourCollectionID = request.getParameter("yourCollectionID");
List<SomeObject> yourCollection = (List<SomeObject>) request.getSession().getAttribute(yourCollectionID);
request.getSession().removeAttribute(yourCollectionID);