将对象从:每个循环发送到控制器
我有形式和对应控制器传递的对象列表。
实体类:
@Entity
public class Entity1
@Id
@Column(name="id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "entity2_id")
private Entity2 entity2Field;
@Entity
public class Entity2
@Id
@Column(name="id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name="name")
private String name;
控制器:
@GetMapping(value="/create")
puplic String show(Model entity1Model, Model entity2Model){
entity1Model.addAttribute("entity1", new Entity1());
List<Entity2> list= entity2Repository.findAll();
entity2Model.addAttribute("entity2list", list);
return "form"
}
@PostMapping(value="/create/new")
public String save(Entity1 entity1, @RequestParam(name="entity2list) String somevalue{
Entity2 entity2= entity2Repository.findByName(somevalue);
entity1.setEntity2Field(entity2)
entity1Repository.save(entity1)
return "redirect:/"
}
表格:
<form method="post" th:action="@{create/new}">
<select class="form-control" name="entity2list">
<option th:each="ent2:${entity2list}
th:value="${ent2.name} th:text="${ent2.name}>
</select>
<button type="submit"></button>
</form>
我想百里叶th:表单中的每个循环变量都不能为th:object = $ {ent2}(原因,如果我这样做,请选择form return return null)。 th:value =“ $ {ent2.name}返回字符串值。因此,我必须将@requestParam(th:value)发送到“保存”方法。但是在这种情况下,我必须对数据库提出其他请求,以获取Entity2 并将其设置为Entity1
对象
<form method="post" th:action="@{create/new}">
<select class="form-control">
<option th:each="ent2:${entity2list}
th:object="${ent2} th:text="${ent2.name}>
</select>
<button type="submit"></button>
</form>
。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我解决了问题:field =“*{entity2field}的工作
i have solved the issue th:field="*{entity2Field} works like setter
https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html#creating-a-form