gpt4 book ai didi

java - Spring MVC @ModelAttribute 不绑定(bind)表单

转载 作者:行者123 更新时间:2023-12-01 12:25:36 26 4
gpt4 key购买 nike

我正在尝试通过 ajax 发布到 Spring MVC Controller 方法。使用 Chrome 的开发者工具,我可以看出正在发送表单中的值,但在该方法中,表单值为 null。

这是 jquery 调用:

var form = $('#renegotiationForm').serialize();
$.ajax({

method:'POST',
url:'/renegotiate/wizard/startRenegotiation',
data:{'renegotiationForm': form},
success: function(data) { this.transitionTo(data); }

});

这是 Spring MVC 方法(仅返回单个字符串):

@RequestMapping(value="wizard/startRenegotiation", method = RequestMethod.POST)
public @ResponseBody String processStart(@ModelAttribute("renegotiationForm") RenegotiationForm form, BindingResult bindingResult) {

log.debug("Entered showStart(), method=POST");

RenegotiationType type = RenegotiationType.valueOf(form.getRenoType().trim().toUpperCase());
RenegotiationActivity activity = RenegotiationActivity.valueOf(form.getRenoActivity().trim().toUpperCase());

String result = "";
if (type == RenegotiationType.TYPE1 && activity == RenegotiationActivity.ACTIVITY1) {
result = "deleteType1";
}

return result;
}

这些值是使用 Spring Form 标签库绑定(bind)的,并且我已确认表单标签的路径属性与 RenegotiationForm 的字段匹配。

最佳答案

我认为这是因为你试图从ajax发送一个“字符串”并且你想要获取对象(RenegotiationForm),尝试在服务器端将其更改为字符串和格式。我建议您也添加从客户端发送的类型。

@RequestMapping(value = "wizard/startRenegotiation", method = RequestMethod.POST, produces="application/json")

关于java - Spring MVC @ModelAttribute 不绑定(bind)表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26366192/

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