java - PostMapping 的问题 - GetMapping 方法 - 链接中的循环。SpringBoot
问题描述
我在将数据发送到我的一张表时遇到问题。下面你可以看到我的方法:一个显示带有表单的模板,第二个应该添加这个动作。
@GetMapping("/addaction/{id}")
public String addAction(Model model, @PathVariable("id") int id ) {
Optional<PlantEntity> plantEntity = plantService.getPlantById(id);
if (plantEntity.isPresent()) {
model.addAttribute("plant", plantEntity.get());
}
return "addaction";
}
@PostMapping("/addaction/{id}")
public String addAction(@ModelAttribute ActionForm actionForm,
@PathVariable("id") int plantId) {
if(!userService.isLogin()) {
return "redirect:/";
}
actionService.addAction(actionForm, plantId);
return "redirect:/plant/"+plantId;
}
这是我在服务中的方法:
public void addAction (ActionForm actionForm, int plantId) {
PlantEntity plantEntity = new PlantEntity();
plantEntity.setId(plantId);
ActionEntity act = new ActionEntity();
act.setName(actionForm.getName());
act.setDescription(actionForm.getDescription());
act.setPlant(plantEntity);
act.setUser(userService.getUserData());
act.setMonth(actionForm.getMonth());
actionRepository.save(act);
}
和我的模板:addaction.html
<form method="post" action="'/addaction/'+${plant.getId()}"
th:object="${actionForm}">
<div class="form-group">
<label for="exampleInputEmail1">Name of activity</label> <input
type="text" th:field="*{name}" class="form-control"
id="exampleFormControlInput1" aria-describedby="emailHelp"
placeholder="Name your work">
</div>
<div class="form-group">
<label for="exampleFormControlTextarea1">What you gonna
do?</label>
<textarea class="form-control" th:field="*{description}"
id="exampleFormControlTextarea1" rows="4"></textarea>
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<label class="input-group-text" for="inputGroupSelect01">Month of activity</label>
</div>
<select class="custom-select" th:field="*{month}"
id="inputGroupSelect01">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
</div>
<button type="submit" class="btn btn-dark">Action!</button>
</form>
主要问题是:当我尝试 addAction 结果是:
http://localhost:8080/addaction/ '/addaction/'+$%7Bplant.getId()%7D
有某种循环。我究竟做错了什么?感谢您的时间!
解决方案
你不必通过'
。春天的表达语言将采取无'
也。
尝试删除如下。
action="/addaction/${plant.getId()}"
推荐阅读
- javascript - 如何对嵌套函数和 JS 进行单元测试
- multiprocessing - 使用 ZeroMQ 实现多进程程序时应该使用哪种模式?
- c# - 从内存流中获取文件信息
- r - 如何在R中查找同一时间段内的重复记录
- spring - 使用 Spring Boot < 2.3 的云原生构建包
- sql - Microsoft SQL Server - “如果存在则更新或插入”的最佳方式
- flutter - Flutter 侧边导航动画
- python - 属性错误:folium没有属性图
- python - Python文本到语音无法使用pyttsx3
- amazon-web-services - 如何模拟 s3Client 以便可以在 Golang 测试中运行 GetObject()?