Как передать данные, содержащиеся в модальном режиме динамической загрузки, на контроллер в приложении Spring Boot, чтобы иметь возможность выполнять необходимые операции POST?

У меня есть модальное окно начальной загрузки, обернутое внутри тега формы.

<form method = "POST" th:action = "@{/ProcessRequest}">
//Long Bootstrap modal code inside this form. At the end I have two action (POST) buttons as:
<input type = "submit" id = "submit" class = "btn btn-background btn-sm" name = "action" value = "Approve" />
<input type = "submit" id = "reject" class = "btn btn-background btn-sm" name = "action" value = "Reject" />

У меня есть таблица в моем интерфейсе, и этот модальный загрузчик запускается при нажатии на крайнее правое поле / столбец в этой таблице.

<tr th:each = "manObj : ${manObj}">
    <td th:text = "${manObj.requestId}" title = "Requestd ID"></td>
    <td th:text = "${manObj.requestor}" title = "Requestor"></td>
    <td th:text = "${manObj.commodity}" title = "Commodity"></td>
    <td th:text = "${manObj.effectiveDate}" title = "Input Date">
    <td title = "Approve Request"><a th:href = "@{findOne/(requestId=${manObj.requestId},requestLineNbr=${manObj.requestLineNbr})}" 
    class = "btn btn-primary eBtn">
            <img src = "./images/approver_menu.png" width = "12px" height = "12px"></img>
        </a></td>
</tr>

Я связываю объект в каждой строке таблицы и модальном окне, используя jquery для сохранения этого объекта в переменной href, а затем заполняю модальное окно следующим образом:

$('.tableA').on('click','.eBtn',function(event) {
   event.preventDefault();
   $('#confirmViewRequest').modal('show');  
   var href = $(this).attr('href');
   $.get(href,function(manObj,status){
        $('.myform #requestId').html(manObj.requestId);
        $('.myform #effectiveDate').html(manObj.effectiveDate);
        $('.myform #expirationDate').html(manObj.expirationDate);
        $('.myform #commodity').html(manObj.commodity);
        $('.myform #discount').html(manObj.discount);
        $('.myform #address1').html(manObj.address1);
        $('.myform #city').html(manObj.city);
        $('.myform #state').html(manObj.state);
    });

У меня есть методы в моем контроллере, где мне нужны значения, хранящиеся в этой динамической модели начальной загрузки, чтобы я мог выполнять необходимые внутренние действия. НО я не знаю, как загрузить requestId в контроллер, как только пользователь нажимает эту кнопку Approve. Прямо сейчас у меня есть контроллер как:

@PostMapping(value = "/ProcessRequest",params = "action=Approve")
public String ApproveRequest() {

    //Need to fetch requestId here so that I can do necessary actions

    //Integer requestId = Integer.parseInt(requestIdStr);

    //ip1requestCustom.changeStatus(requestId); 
    //System.out.println("All status changed for"+requestId);
    return "home";
}

@PostMapping(value = "/ProcessRequest",params = "action=Reject")
public String RejectRequest() {
    //Same. need that requestId from dynamic bootstrap modal
    return "home";
}

Мне нужно либо значение, хранящееся в 'requestId', либо объект в моем контроллере. Как это можно сделать?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
793
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я смог решить эту проблему, используя тег <input> вместо тега <span> в модальном окне. Затем я дал атрибут name тегу <input> для этих динамических данных. Затем я использовал RequestParam, чтобы получить значение, содержащееся в этом поле. Вкратце, я сделал это со своим контроллером:

@PostMapping(value = "/ProcessRequest",params = "action=Approve")
public String ApproveRequest(@RequestParam Map<String,String> reqPar) {
    String requestId = reqPar.get("requestId");     
    System.out.println(requestId);
    return "home";
}

Другие вопросы по теме