Spring Web Flow: el método de frijol de llamadas como la acción de destino

Alessandro:

Tengo un JSF+ Spring Web Flowaplicación y me gustaría pasar de una vista a otra utilizando un método definido en frijol de la vista.

Por lo tanto, mi flow.xml es como la siguiente:

<flow ...>
     <var name="myBean" class="mypackage.myclass" />
     <view-state id="list">
         <transition on="myEvent" to="#{myBean.onMyEvent()}"
     </view-state>
</flow>

En el frijol he definido:

public String onMyEvent(final SelectEvent event) {
    //Do something
    return "input";
}

El botón es simplemente:

<h:commandButton id="myButton" action="myEvent" ajax="false" value="myButton" />

Cuando pulso en el botón que contiene el action="myEvent"me sale el error:

EL1004E: Método de llamada: Método onMyEvent () no se puede encontrar el tipo de [...]

Entonces, ¿qué hay de malo en mi código? ¿Cómo puedo llamar a un método en mi frijol en algún evento?

Gracias.

Alessandro:

Por último, he resuelto mediante el org.springframework.webflow.engine.RequestControlContext que puede manejar manualmente caso como en el siguiente ejemplo:

lado de extremo delantero (llamada al método del bean):

<h:ajax event="rowSelect" listener="#{myBean.onMyEvent}" />

Bean (hacia adelante al controlador de Spring Web Flow):

public void onMyEvent(final SelectEvent event) {
    // Fill the bean for next view
    final RequestContext requestContext = RequestContextHolder.getRequestContext();
    requestContext.getFlowScope().put("nextBean", nextBean);
    final RequestControlContext rec = (RequestControlContext) requestContext;
    rec.handleEvent(new Event(this, "myEvent")); // the action managed by Spring Web Flow
}

Y finalmente en la flow.xmlcategoría (Gestión de la transición a la siguiente vista)

<view-state id="myView">
    <transition on="myEvent" to="nextView" />
</view-state>

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=219913&siteId=1
Recomendado
Clasificación