[SPRING] 흐름 외부에서 Spring Webflow FlowScope 요소에 어떻게 액세스 할 수 있습니까?
SPRING흐름 외부에서 Spring Webflow FlowScope 요소에 어떻게 액세스 할 수 있습니까?
편집 : 나는이 물음에 어떤 물기를 얻지 않았다, 그래서 나는 조금 더 세부 사항을 추가하고있다.
스프링 웹 플로우 앱 (버전 2.3.2)이 있습니다. Flow (흐름 자체가 아닌) 단계 중 하나의 유효성 검사 내부에서 여러 FlowScope 객체에 액세스해야합니다. 당신은 이것이 간단 할 것이라고 생각 하겠지만, 나는 그것을 해독 할 수 없었습니다.
Spring Webflow는 다양한 범위에 액세스하는 데 사용할 수있는 일련의 특수 EL 변수를 제공하지만 흐름 자체 내부에서만 사용할 수 있습니다. 커스텀 Spring 유효성 검사기 안에는 접근 할 수있는 방법이 없다.
@Component
public class MyObjectValidator {
@Autowired
ApplicationContext context;
public void validateMyObject(MyObject myObject, Errors errors) {
FlowScope flowScope = context.someMagicFunction(); // <---- UNKNOWN
MyOtherObject otherObject = flowScope.get("otherObject");
if (incrediblyComplexValidation(myObject, otherObject) {
errors.rejectValue("myField","validation.fail","Your object failed validation.");
}
}
}
보시다시피 Spring Webflow Validator 내부에는 유효성을 검사해야하는 객체를 제외한 모든 객체에 대한 직접적인 외부 연결이 없습니다. flowScope에서 다른 객체에 접근해야합니다. 이상적으로는 ApplicationContext 나 다른 환경 적 특성을 통해 이러한 다른 객체에 접근 할 수있는 방법이 있어야합니다.
누구든지 이것에 대한 답을 알고 있습니까?
해결법
-
==============================
1.요청 고유의 statecurrent 웹 응용 프로그램 컨텍스트에 대한 RequestContext 컨텍스트 보유자에서 범위 콩을 가져올 수 있습니다. 유효성 검사기 메소드에서 요청 컨텍스트에 대한 액세스 권한은 다음과 같습니다.
요청 고유의 statecurrent 웹 응용 프로그램 컨텍스트에 대한 RequestContext 컨텍스트 보유자에서 범위 콩을 가져올 수 있습니다. 유효성 검사기 메소드에서 요청 컨텍스트에 대한 액세스 권한은 다음과 같습니다.
import org.springframework.webflow.execution.RequestContext; import org.springframework.webflow.execution.RequestContextHolder; RequestContext requestContext = RequestContextHolder.getRequestContext(); requestContext.getFlowScope().get("objectYouAreLookingFor");
from https://stackoverflow.com/questions/22462077/how-can-i-access-spring-webflow-flowscope-elements-outside-the-flow by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 앵귤러 4 httpclient xml 응답 (0) | 2019.04.10 |
---|---|
[SPRING] 최대 절전 모드로 열 수 줄이기 (0) | 2019.04.10 |
[SPRING] Spring XML 기반에서 Java 기반 구성으로 변환 (0) | 2019.04.10 |
[SPRING] 어노테이션 기반 설정을 사용하여 느리게 초기화 된 스프링 빈 생성하기 (0) | 2019.04.10 |
[SPRING] 응답하지 않는 반응하는 WebClient (0) | 2019.04.09 |