У меня есть компонент, который имеет некоторые атрибуты с аннотациями для определенных полей.
Я использую этот компонент два раза
Впервые мне нужно использовать функцию bindingResult.hasError для всех атрибутов (без проблем).
Во второй раз я просто хочу использовать функцию bindingResult.hasError по четырем атрибутам (соответствует четырем полям, которые отображаются моим JSP), но он не работает, потому что функция bindingResult.hasError обнаруживает ошибки в других полях в компоненте
java bindingResult hasError function
Мой боб:
private String region;
@NotBlank
private String zone;
@NotBlank
private String country;
@NotBlank
private String site;
private Long siteId;
@NotNull
private Long statusId;
private String status;
@NotBlank
private String linkName;
@NotNull
private Long linkTypeId;
private String linkType;
private Integer downloadLineBw;
private Integer downloadPortBw;
private String technology;
@ValidDate
private String installDate;
private String maintenanceInfo;
private String internetConfiguration;
@NotNull
private Long linkRoleId;
private String linkRole;
private Long contractOwnerId;
private String contractOwner;
private Integer uploadPortBw;
private Integer uploadLineBw;
private Long yearlyCost;
@ValidDate
private String endDate;
private String supplier;
private Long ismCost;
private Long oneTimeCost;
private String linkedService;
Мой контроллер:
@RequestMapping(method = RequestMethod.POST)
public String findLinksByCriteria(@Valid LinkForm link, BindingResult bindingResult, Model uiModel) {
if (isCriteriaEmpty(link)) {
uiModel.addAttribute("criteriaEmptyWarning", "error_search_criteria_empty");
return ViewConstants.LINK_SEARCH_VIEW;
}
if (bindingResult.hasErrors()) {
return ViewConstants.LINK_SEARCH_VIEW;
}
...
}
часть моего JSP:
<tr>
<td class="label"><spring:message code="link.site" /></td>
<td class="value"><form:input path="site" cssClass="x-form-text" /></td>
<td class="label"><spring:message code="link.type" /></td>
<td class="value"><form:input path="linkType" cssClass="x-form-text" /></td>
</tr>
<tr>
<td class="label"><spring:message code="link.installDate" /></td>
<td class="value">
<form:input path="installDate" cssClass="datepickerMe" />
<form:errors path="installDate" cssClass="errormsg" />
</td>
<td class="label"><spring:message code="link.EndDate" /></td>
<td class="value">
<form:input path="endDate" cssClass="datepickerMe" />
<form:errors path="endDate" cssClass="errormsg" />
</td>
</tr>
Спасибо за ответ. Знаете ли вы, что лучше создать пользовательский весовой валидатор или новый компонент java для моей формы? –
Я лично предпочитаю дублировать форму, так как цель класса станет более понятной и удобной в обслуживании (например, 'CreateLinkForm',' EditLinkForm') –
Я выбрал именно такой вариант. Спасибо за помощь –