gpt4 book ai didi

Spring MVC 表单设置字段为空

转载 作者:行者123 更新时间:2023-12-04 04:45:35 26 4
gpt4 key购买 nike

我正在使用 Tiles 3、JPA 和所有其他很酷的东西学习 Spring MVC。我创建了一个表单来发送数据,下面是表单:

<form:form method="POST" action="/users/save" enctype="multipart/form-data" modelAttribute="formUsuario">
<form:label path="username" for="username">Username</form:label>
<form:input type="text" id="username" path="username" class="span4" value="${user.username}" />
<form:label path="firstName" for="firstName">First name</form:label>
<form:input type="text" id="firstName" path="firstName" class="span4" value="${user.firstName}" />
</form:form>

Controller 内部添加新记录的方法:
@Secured("ROLE_USER")
@RequestMapping(value = "/new", method = RequestMethod.GET)
public String getNew(@ModelAttribute("formUsuario") br.com.rodrigoferra.domain.User user) {
logger.info("Add new user");
return "users/edit";
}

保存新记录的方法:
@Secured("ROLE_USER")
@RequestMapping(value = "/save", method = RequestMethod.POST)
public @ResponseBody String doSave(@ModelAttribute("formUsuario") br.com.rodrigoferra.domain.User user, BindingResult results, Model model) {
if(results.hasErrors()) {
return "users/edit";
}
user = userRepository.save(user);
logger.info("Username: " + user.getUsername());
return "redirect:/users/";
}

它正在保存记录,但将所有内容保存为 Null! Controller 正在接收来自表单的数据。我搜索了很多并找到了与此相同的示例,但我无法让我的工作!

有没有我错过的配置?

感谢并抱歉我的英语不好。

编辑:

用户 bean :
@Entity(name="users")
public class User implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue( strategy = GenerationType.IDENTITY)
private Long id;

private String firstName;
private String lastName;

@Column(unique=true)
private String username;

private String password;
@Transient
private String passwordConfirmation;

private Date birthdate;

private String signature;
private String email;
private String sex;

private int active;

最佳答案

使用 Firebug 或类似工具查看请求中是否正确包含表单字段值,并将请求发送到正确的 URI。

记录(或调试)并检查 user接收请求后的对象内容,在 doSave() .

记录(或调试)并检查 user userRepository.save() 中的对象内容在持久化之前确保所有值都可用。

以下可能是实际原因,但首先检查上面会排除其他可能性

删除 enctype="multipart/form-data"在表单定义中,因为此表单不打算发送二进制数据。
查看以下内容以获取更多信息:
What does enctype='multipart/form-data' mean?
Form content types in HTML 4 spec
Multipart form data encoding in HTML 5 spec

关于Spring MVC 表单设置字段为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18233053/

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