【发布时间】:2014-01-30 08:53:19
【问题描述】:
我的验证表单有问题,表单有很多不同的字段(输入文本字段、选择选项、多选选项...)。我已经开发了有关使用 spring security 的验证表单的所有逻辑源代码,但是当验证表单失败(例如,用户没有填写任何内容)并再次重新加载表单时,所有输入文本字段都已正确填写,但选择选项和多个选择选项已被删除,用户必须再次选择它。为什么不填写为文本字段?
这是我的一个观点:
<tr>
<td><form:label path="TechContactName"><spring:message code="label.techcontactname"/><sup>*</sup></form:label></td>
<td><form:input path="TechContactName" /></td>
<td><form:errors path="techContactName" cssClass="error" /></td>
</tr>
<tr>
<td><form:label path="LicenseProduct"><spring:message code="label.licenseproduct"/><sup>*</sup></form:label></td>
<td><form:select path="licenseProduct" id="selectProduct" size="6" >
<option >Option 1</option>
<option >Option 2</option>
<option >Option 3</option>
<option >Option 4</option>
<option >Option 5</option>
<option >Option 6</option>
</form:select></td>
<td><form:errors path="licenseProduct" cssClass="error" /></td>
</tr>
<tr>
<td><form:label path="DeployCountries"><spring:message code="label.deploycountries"/><sup>*</sup></form:label></td>
<td><form:select path="deployCountries" id="selectCountries" multiple="multiple" >
<option value="AT">Austria</option>
<option value="BE">Belgium</option>
<option value="DK">Denmark</option>
<option value="FI">Finland</option>
<option value="FR">France</option>
<option value="DE">Germany</option>
</form:select> </td>
<td><form:errors path="deployCountries" cssClass="error" /></td>
</tr>
还有我的控制器:
@SuppressWarnings("finally")
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addLicense(@Valid @ModelAttribute(value="license") LicenseEntity license, BindingResult result, ModelMap map, HttpServletRequest request)
{
if(result.hasErrors()){
System.out.println("validation errors size..."+result.getErrorCount());
return "editLicenseList";
} else {
//all works correctly
}
}
验证失败时表单输入文本字段已正确填写,但 form:select 和 form:select multiple 失败并重新加载表单并选择任何值。
提前致谢!
【问题讨论】:
标签: forms validation spring-mvc spring-security