我正在使用与@ModelAttribute的Spring表单数据绑定。我在表单中有一些隐藏的字段,我需要在发布请求后填充这些字段。这些是我的一些观察:
1)如果这些隐藏字段具有默认值,则表单中的数据正确绑定
2)如果隐藏字段没有值,则服务器抛出BadRequest
3)如果我删除控制器中的ModelAttribute绑定,我可以使用null发送隐藏字段,但我必须使用request.getParameter()
分别检索每个参数问题:是否有使用@ModelAttribute的解决方法,我可以为某些表单数据发送空值? (例如序列id,最后更新时间等值)
对于任何null的表单参数都会出现此问题 - 因此当使用@ModelAttribute进行表单绑定时,任何可以保留为空的可选表单值也会产生“BadRequest”
另外,我想我会提到我正在使用ajax来发送请求(我在使用ajax时不读使用@ModelAttribute,不确定它是否有效)
感谢。
答案 0 :(得分:0)
你可以尝试使用弹簧形式:
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page isELIgnored="false"%>
<div class="body-wraper">
<section class="wrap">
<h1><spring:message code="applicant.enrollment.module.label"/></h1>
<form:form id="frmNetwrkSubscripInfo" method="post" modelAttribute="applicantDto">
<form:hidden path="applicantId" id="hiddenApplicantId" value="" />
<form:hidden path="paInd" id="hiddenPaInd" value="" />
<input type="hidden" value = "${applicantDto.applProgressCde}" id ="applProgressCde"/>
<input type="hidden" id="hiddenValidateText" value="<spring:message code='applicant.network_subscription.promocode.button.label.validate' />" />