gpt4 book ai didi

java - Spring MVC 表单处理和 Spring 标签

转载 作者:行者123 更新时间:2023-11-30 08:10:33 24 4
gpt4 key购买 nike

我已经学习了 Spring 一个星期左右,但我觉得我在表单处理方面缺少一些东西。

例如,如果我有一个允许输入 Student 数据的表单,并且我有一个像这样定义的 Student bean:

public class Student {
private Integer age;
private String name;
private Integer id;

// and other getters and setters
}

然后我有一个表格:

<form:input path="name" />
<form:input path="age" />
<form:input path="id" />

以及处理发布请求的 Controller 方法:

   @RequestMapping(value = "/add", method = RequestMethod.POST)
public String add(@ModelAttribute Student student) {

//do stuff
}

如果我想创建一个自定义表单,该表单不直接添加包含 Student 具有的每个属性的所有字段的“Student”,而是包含一些复杂字段的自定义表单,看起来与我们在模型中定义的 Student 完全不同。例如:

<form:input path="age" />
<form:input path="firstname" />
<form:input path="lastname" />

请注意 firstnamelastname 属性都不存在于 Student 类定义中。我可以连接这两个值并将其放入 name 中。

对于这种情况,我是否必须创建一个新的 bean 类来定义该表单的属性?这对我来说似乎有点多余。

并且是this , ViewModel 的事情,有解决办法吗?

最佳答案

创建一个“表单支持对象”,即特定于您的表单的类。将值从此 FBO 复制到您的实体类。

如果您的表单与您的数据库实体不同,这并不是多余的。

如果有很多字段,请使用像 Dozer 这样的工具来自动执行此操作。

不过,在数据库中存储年龄和全名并不是一个好主意。存储出生日期和名字/姓氏更好。

关于java - Spring MVC 表单处理和 Spring 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31638681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com