我有窗体和相应的控制器,对象列表被传递给它们。
实体类:
@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:each循环变量不能是th:object=${ent2}(因为如果我这样做,select form返回null)。而th:value="${ent2.name}返回字符串值。所以我不得不将@RequestParam(th:value)发送给“save”方法。但是在这种情况下,我必须对数据库进行额外的请求,以获取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>
并将(@ModelAttribute(“ent2”)Entity2 ent2而不是@RequestParam)发送到“save”方法,以避免对数据库的冗余请求?
我已经解决了问题 th:field=“*{entity2Field} 的工作方式类似于 setter https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html#creating-a-form
<form method="post" th:action="@{create/new}" th:object="${entity1}">
<select class="form-control" th:field="*{entity2Field}>
<option th:each="ent2:${entity2list}
th:value="${ent2} th:text="${ent2.name}></option>
</select>
<button type="submit"></button>
</form>
我在将对象列表从Thymeleaf保存到控制器时遇到了一个大问题。thymeleaf中的对象列表由Jquery生成。但我不知道如何将数据传输到控制器,对象列表不知道大小。因为用户可以随时添加它。请帮助我将thymeleaf中的列表对象发送给控制器。 我创建了一个具有1个属性的新类:ArrayList loaiDoans;“LoaiDoan”是我想要保存的对象。使用该类是将列表“loaidon”从t
我的视图中有一个向控制器发送对象的表单,但问题是,如果我发送的对象超过256个,就会出现异常: 所以我在想为什么会有这样的限制,于是我找到了这个话题:https://stackoverflow.com/a/24699008/4173394 但它似乎对我不起作用(可能是我的一个坏习惯)。 下面是我的结构:我的视图名为createUpdate.vm,并像这样发布我的表单: 我在FollowerFile
我是百里香菜鸟。我试图创建一个简单的crud应用程序。我试图在删除按钮上删除客户类的对象。我如何使用百里香叶为调用deleteUser的方法设置参数(例如- id)。这是我的控制器。 以下是我的看法。
seleccion“对象它是一个实体,具有我从Ajax发送的JSON的一些属性,”seleccionados“是一个列表,保存接收到的数组,但当我发送它时,obj参数总是返回一个空对象,Ajax发送错误函数,我认为问题是我在向对象发送数组,但我不知道如何解决它 选择对象模型:
我试图通过AJAX向Spring控制器发送JSON对象,但收到错误415: 下面是我的javascript调用- 这里是我的依赖项杰克逊相关的依赖项在我的POM- 讽刺的是,当我试着穿Spring靴的时候,它就起作用了。
JS: 豆角 错误: 对于一个简单的任务来说,这太复杂了。