Как передать значение текстового поля со страницы Jsp в контроллер Spring без использования тега формы

#java #spring #jsp

#java #spring #jsp

Вопрос:

У меня есть 3 поля, Name, Age, Address и оно имеет значение по умолчанию, которое поступает из базы данных, теперь я хочу отредактировать или обновить значение каждого поля с помощью кнопки редактирования, поэтому я хочу передать значение редактирования поля из jsp в spring controller.

 <input type="text" value="${map.Fname}" id="nameEdit" disabled>
<input type="button" class="btn btn-outline-default float-right btn-sm" value="Edit" onclick="nameEdit()">
<input type="submit" value=submit>
 

Здесь у меня есть две кнопки редактирования — для редактирования значения по умолчанию, другая кнопка отправки для отправки значения, которое вводится в текстовое поле.

Ответ №1:

Если вы не хотите использовать форму, другим способом будет использование POST-вызова из jQuery или JavaScript

Давайте предположим, что ваш контроллер Rest выглядит следующим образом

 @PostMapping("/save")
public void saveDetail(@RequestBody UserDetail data){

}
 

поскольку вы не хотите использовать форму, вы можете заменить тип отправки на кнопку, подобную этой

 <input type="button" value="submit" id="btnSubmit">
 

POST вызов с использованием jQuery

 var data = {
   "fname" : "Test",
   "lname" : "Test",
}

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: success,
  dataType: "application/json"
});
 

Использование JavaScript

 var xhr = new XMLHttpRequest();
var url = "url";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 amp;amp; xhr.status === 200) {
        var json = JSON.parse(xhr.responseText);
        console.log(json.email   ", "   json.password);
    }
};
var data = JSON.stringify(data );
xhr.send(data);