Передача карты или объектов из jsp в сервлет

У меня есть приложение, которое передает карту из сервлета в jsp. В jsp я отображает карту и предоставляет возможность удалять или редактировать значения pf на карте. Но после изменения значений, как отправить карту обратно на другой сервлет, где он получает карту.

Предположим, у меня есть сервлет «servletA», который передает карту в jsp следующим образом:

public int Id=11111;
Map configParamsMap=new HashMap(size);
    configParamsMap.put("1", "arg1");
    configParamsMap.put("2", "arg2");
    configParamsMap.put("3", "arg3");
    configParamsMap.put("4", "arg4");
    //
    System.out.println("parameters passing to the jsp:: appId"+appId+"::configId"+configId);
    request.setAttribute("configParamsMap", configParamsMap);
    request.setAttribute("Id", Id);


    RequestDispatcher rd = request.getRequestDispatcher("/JSP/display.jsp");
    rd.forward(request, response);

в jsp, я могу удалить или изменить значения. я делаю delete следующим образом и передавая параметры


    <!--  KEY: ${configParams.key}  - VALUE: ${configParams.value} -->

    <tr>
        <td>
        
        </td>
        <td><input type="text" name="" value="${configParams.value}" /></td>

    </tr>

</table>
<form action="sevletB?action=Delete" method="post"><input
type="submit" value="Delete">
<input type="hidden" name="Id" value="${Id}">   
</form>

Моя проблема заключается в том, как передать карту обратно на другой сервлет «servletB», как я сделал с параметром «id». Эта карта должна быть той, где пользователь либо редактировал некоторые значения, то есть текущий статус карты в jsp.

3

3 ответы

Напишите весь свой код внутри тега формы.

Используйте этот код:


   <tr>
        <td>
        
        </td>
        <td><input type="text" name="" value="${configParams.value}" /></td>
  </tr>

Используйте скрытое поле, которое будет содержать значение $ {configParams.key} . Используйте итератор цикла $ {itemsRow.index} , чтобы сделать выдающиеся имена параметров, например

<input type="text"name="configParam.${itemsRow.index}"value="${configParams.value}" />

Когда форма будет отправлена, вы можете получить доступ ко всем этим значениям из запроса, указав имена в методе getParameter ('') .

4
добавлено

Ну, вы не можете передать карту через HTTP-запрос. Я предполагаю, что вы хотите отслеживать все изменения, особенно удаление с JSP на серверную сторону

So instead of storing it in request , store it in session In the JSP

session.setAttribute("configParamsMap", configParamsMap);

И в вашем сервлете получить идентификатор, который будет удален из запроса

    String idToDelete = request.parameter("id");

    //Now delete the id from the map
    Map configParamsMap = (Map)session.getAttribute("configParamsMap");

//Delete it from the map
configParamsMap.remove(idToDelete );
2
добавлено
  • You can have a hidden <input type=Select>
  • Populate with the values of map

  • отправить в servletB (читать в servletB)
1
добавлено
У меня нет исходного кода, вот почему вам нужно следовать.
добавлено автор TheWhiteRabbit, источник
немного отредактировал
добавлено автор TheWhiteRabbit, источник
thats not exact syntaxt, о котором я только что упомянул, имеет вход выбранного типа, см. ниже код
добавлено автор TheWhiteRabbit, источник
может усовершенствовать немного больше, с некоторыми береговыми кодами @TechExchange
добавлено автор Mr. Singthoi, источник
спасибо, я попробую, и посмотрим, работает ли это
добавлено автор Mr. Singthoi, источник
Можете ли вы рассказать мне, как я могу установить <input type = Select> и как я должен отправить его сервлету B из jsp
добавлено автор Mr. Singthoi, источник
Можете ли вы сказать мне точный синтаксис и обновить его, потому что, когда я его пробую, появляются ошибки
добавлено автор Mr. Singthoi, источник
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async