java - 如何在不使用表单标记的情况下将文本字段值从 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>
这里我有两个按钮编辑用于编辑默认值另一个提交按钮用于提交在文本字段中输入的值。
解决方案
如果您不想使用 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);
推荐阅读
- java - Mockito 验证:想要但未调用错误
- redis - Redis - 使用 SET 或 STRING 获取对象的只读列表
- reactjs - 如何在不手动设置每个变量的情况下管理许多动态变量的状态
- c++ - 识别我的代码中引发的“访问冲突读取位置”异常
- angular - 拦截器中的数据更改不会反映在组件中,反之亦然。我怎样才能做到这一点?
- typescript - forEach 无法获得正确的类型
- javascript - 运输重量计算
- mongodb - 如何从管理员数据库连接到 mongoDb
- junit5 - 如何测试junit5扩展?
- jupyter-notebook - 不小心用旧版本覆盖了我的 juyper 笔记本。可以撤销吗