2
我遇到了驗證窗體的問題,窗體有很多不同的字段(輸入文本字段,選擇選項,多選擇選項...)。我已經用spring security開發了關於驗證表單的所有邏輯源代碼,但是當驗證表單失敗(例如,用戶不填寫任何內容)並重新加載表單時,所有輸入文本字段都被正確填充,但是選擇選項和多個選擇選項已被刪除,用戶必須重新選擇。爲什麼不填充文本字段?Spring MVC選擇窗體中的值:在窗體驗證錯誤後選擇
這是我的一塊視圖:
<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
}
}
的形式輸入文本字段SI當驗證失敗時正確填寫但形式:選擇和形式:選擇多個失敗並用選定的任何值重新加載表單。
在此先感謝!
感謝威爾基林非常多!簡單的選擇完美的作品,但多選擇不,如果我選擇了多個選項後驗證表單,並重新加載它沒有選擇任何東西,有什麼辦法來保持選擇? – pedrojo05
您可以使用調試器檢查提交表單後模型中的'LicenseEntity.deployCountries'列表是否已填充?這個列表的值需要匹配''標籤中'value'的值 - 因此一個或多個字符串'AT','BE'等 –