首页 > 解决方案 > 如何在不使用表单标记的情况下将文本字段值从 Jsp 页面传递到 Spring Controller

问题描述

我有 3 个字段Name, Age, Address,它有一个来自数据库的默认值,现在我想使用编辑按钮编辑或更新每个字段值,所以我想将字段编辑值从 jsp 传递到 spring 控制器。

<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>

这里我有两个按钮编辑用于编辑默认值另一个提交按钮用于提交在文本字段中输入的值。

标签: javaspringjsp

解决方案


如果您不想使用 Form 其他方式将使用来自jQuery或的 POST 调用JavaScript

假设您的 Rest Controller 看起来像这样

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

}

因为你不想使用表单,你可以用这样的按钮替换类型提交

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

使用 jQuery 进行 POST 调用

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 && xhr.status === 200) {
        var json = JSON.parse(xhr.responseText);
        console.log(json.email + ", " + json.password);
    }
};
var data = JSON.stringify(data );
xhr.send(data);

推荐阅读