有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java更新的表单数据无法到达控制器

场景:用户希望编辑现有配置文件的一些详细信息。问题是,提交表单时,控制器中该属性的更新值(例如:country)不存在。它仍然包含编辑之前的旧值。使用chrome开发者控制台中的“网络”选项卡,我验证了在提交表单时,表单发送了新值,但在控制器中,它消失了

包含该字段的表单:

<form:form id="userDetailsForm" commandName="userForm">
    <div id="userCountryWrapper">
        <label>Enter Country:<label>
        <form:input path="userCountry" id="userCountry" value="${userForm.userCountry}" />
    </div>
</form:form>

我接收数据的控制器:

public String getFormData (@ModelAttribute("userForm") @Valid UserForm userForm, BindingResult result, ModelMap model, HttpServletRequest request, HttpServletResponse response){
    ..
    UserEntity userEntity = new UserEntity();
    userEntity.setCountry(userForm.getCountry);
    ..
}

有没有关于为什么会发生这种数据丢失的信息/建议?提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    我认为问题出在你的控制器上,更具体地说,我认为你必须更改行UserEntity userEntity = new UserEntity();,因为你创建了一个新的对象,而不是更新它,我认为一个简单的解决方案是使用这样的userEntinty = userRepository.findUserById(userForm.getUserId).orElseThrow(() -> { new Exception })userEntity.setCountry(userForm.getCountry)userRepository.save(userEntinty); 我不确定,但你可以检查一下,然后告诉我们解决方案