Spring MVC ポートレットでは、ActionRequest (liferay 6.1.1) に依存するサービスから情報を取得するために modelattribute が必要です。
私はこれを試しました:
@ActionMapping(params="myaction=editUser")
public void editUser(@ModelAttribute(value = "user") UserInfo user, BindingResult bindingResult,
ActionResponse response, SessionStatus sessionStatus, ActionRequest request)
throws Exception {
myEditUserValidator.validate(user, bindingResult);
//...
}
@ModelAttribute("user")
public UserInfo getUser(@RequestParam String uid, ActionRequest request) throws Exception {
return ldapService.getUser(uid, getVirtualPortalLdapMapping(request, virtualPortals));
}
しかし、エラーは次のとおりです。
ERROR [DispatcherPortlet:559] Could not complete request
org.springframework.web.bind.annotation.support.HandlerMethodInvocationException:
Failed to invoke handler method [public void com.mystuff.portlets.controllers.EditUserController.editUser(org.springframework.ui.Model,java.lang.String,org.springframework.validation.BindingResult,javax.portlet.ActionResponse,org.springframework.web.bind.support.SessionStatus,javax.portlet.ActionRequest)
throws java.lang.Exception]; nested exception is java.lang.IllegalStateException:
Errors/BindingResult argument declared without preceding model attribute. Check your handler method signature!
何か案が?助けてくれてありがとう