1
봄 3, 포틀릿 API봄 + 포틀릿 오류 다음은 내 코드입니다, 내 액션 매핑하지만 <code>bindingResult.hasErrors()</code> returnings 사실, JSP
내가 JSP 페이지에 유효성 검사 오류 메시지를 표시 할 수 없습니다 오전에 표시되지 않습니다. 도움을 청하니 . 다음
내 검증
public class SearchFormValidator implements Validator {
public boolean supports(Class<?> klass) {
return SearchForm.class.isAssignableFrom(klass);
}
public void validate(Object target, Errors errors) {
//SearchForm searchForm = (SearchForm)target;
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "serviceId", "search.service.field.error");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "sourceId", "search.source.field.error");
//errors.rejectValue("serviceId", "search.service.field.error");
//errors.rejectValue("sourceId", "search.source.field.error");
}
}
내 컨트롤러
@RenderMapping
public String home(RenderResponse response) {
return "startup";
}
@ModelAttribute("searchForm")
public SearchForm getCommandObject() {
return new SearchForm();
}
@RenderMapping(params = "doAction=showDeviceResults")
public String showResults() {
//return device result JSP name
return "device_results";
}
@ExceptionHandler({ Exception.class })
public String handleException() {
return "error";
}
/*
* On submit form this action searches for available devices
*/
@ActionMapping(params = "doAction=searchDeviceResults")
public void searchResults(@ModelAttribute(value = "searchForm") SearchForm searchForm, BindingResult bindingResult,
ActionResponse response, SessionStatus sessionStatus) {
searchFormValidator.validate(searchForm, bindingResult);
if (!bindingResult.hasErrors()) {
response.setRenderParameter("doAction", "showDeviceResults");
sessionStatus.setComplete();
}
}
다음 내 JSP 코드
<portlet:actionURL var="searchDeviceResultsURL">
<portlet:param name="doAction" value="searchDeviceResults" />
</portlet:actionURL>
<form:form method="post" action="${searchDeviceResultsURL}">
<div>
<form:errors path="*" />
</div>
...
<input id="sourceId" />
...
</form:form>
다음입니다이며, 다음은 내 스프링 구성입니다
내가 런타임 옵션 다음 한 내 portlet.xml 파일에서는
<container-runtime-option>
<name>javax.portlet.actionScopedRequestAttributes</name>
<value>true</value>
</container-runtime-option>
<container-runtime-option>
<name>javax.portlet.renderHeaders</name>
<value>true</value>
</container-runtime-option>
<container-runtime-option>
<name>javax.portlet.escapeXml</name>
<value>false</value>
</container-runtime-option>