2011-11-29 1 views
0

Im은 webflow.mvc.servlet.FlowController가있는 Spring webflow 2를 사용합니다.외부 양식의 데이터를 스프링 웹 플로우에 바인딩하는 방법은 무엇입니까?

이 흐름보기의 모델에 직접 양식 데이터 제출 (POST)을 흐름에 바인딩하고 싶습니다.

외부에서 데이터를 제출하면 데이터가 올바르게 바운드되지만 외부 웹 사이트에서 데이터를 제출하면 데이터가 자동으로 바인딩되지 않습니다.

이것을 확인하기 위해보기 내에서 spring : form 태그를 사용하여 제출자 값을 이름/경로를 통해 바인딩했습니다.

Example: 
    - the views model is named "model" 
    - the class used for the model object is has an attribute called "value1" 
    -> the bind path for the form:input element is "model.value1" 
    -> the submitted form input field is named "model.value1" as well 

갱신 내가 사용 지금 수동으로 요청 매개 변수에 액세스 할 수 있어요

:

이 myBinder이 org.springframework.webflow.execution.Action

를 구현하는 사용자 정의 Java 클래스이고 flowRequestContext

<action-state> 
    <evaluate expression="myBinder.execute(flowRequestContext)"/> 
</action-state> 

이입니다 EL 변수는 프레임 워크에 의해 제공됩니다.

부터 requestContext.getExternalContext().getRequestParameterMap(); 요청 매개 변수가 노출됩니다.

이제 매개 변수를 제 모델 bean에 바인딩하려면 등의 "bindAndValidate"메소드와 같이 자동으로 수행하는 것이 편리합니다. . 나는 그런 방법으로 수업을 할 수 있는지 모른다.

내 모델 콩을 수퍼 클래스로 만들려면 몇 가지 클래스가있을 것으로 기대되지만 어디서나 찾을 수는 없습니다. 대신에 지금 FormAction 느릅 나무 가 bindAndValidate() 메소드가 서브 클래스 화 한 액션 인터페이스를 구현

갱신

. 그러나이 메서드는 매개 변수로 요청해야하며 EL에서 요청에 대한 참조를 가장 잘 검색하는 방법을 아직 모릅니다.

또한 실제로 이것이 요청 매개 변수를 내 모델에 바인딩하고 내 문제를 해결하는지 확인해야합니다.

업데이트는

나는 매개 변수를 제공하지 않고 만든 바인딩 메서드 호출을 보여주는 예제를 발견했다 - 그래서 나는 그 (requestContext가) 어떻게 든 프레임 워크에 의해 발견 가정합니다.

이 접근 방식을 사용하면 모델 이름과 클래스가 FormAction Bean의 속성으로 설정됩니다.

어쩌면 내가 요청에서 각 매개 변수를 읽고 모델 객체에 설정을 수동 방식으로 돌아 가야 ...

흐름은 제대로 실행하는 것처럼 보이지만 요청 매개 변수는 여전히 언 바운드 남아 ...

어떤 아이디어는 환영합니다 ...

답변

1

당신은 EL을 사용하여 XML 흐름 정의 내에서 요청 매개 변수에 액세스 할 수 있습니다. 예를 들어 'param1'이라는 요청의 매개 변수에 액세스하려면 requestParameters.param1을 사용하십시오.

희망이 있습니다.