You are on page 1of 9

Directa subclases conocidas: Accin de clase pblica extends java.lang.

Object Una accin es un adaptador entre el contenido de una solicitud HTTP entrante y la lgica de negocio correspondientes que se deben ejecutar para procesar esta solicitud. El controlador (RequestProcessor) se selecciona una accin apropiada para cada solicitud, crear una instancia (si es necesario), y llame a la execute del mtodo. Las acciones deben ser programadas de manera segura para los subprocesos, ya que el controlador va a compartir la misma instancia para mltiples peticiones simultneas. Esto significa que se debe disear con los siguientes puntos en mente:

Las variables de instancia y estticos, no debern ser utilizados para almacenar informacin relacionada con el estado de una solicitud particular. Se pueden utilizar para compartir los recursos mundiales en todas las solicitudes para la misma accin. Acceso a otros recursos (JavaBean, las variables de sesin, etc) DEBEN estar sincronizadas si esos recursos necesitan proteccin. (Por lo general, sin embargo, las clases de recursos debe estar diseado para proporcionar su propia proteccin cuando sea necesario.

Cuando una Action de instancia se cre por primera vez, el controlador llamar a setServlet con un argumento no nulo para identificar la instancia del servlet al que est conectado esta accin. Cuando el servlet se va a apagar (o reiniciar), el setServlet mtodo ser llamado con un null argumento, que puede ser utilizado para limpiar los recursos asignados en el uso de esta accin. Versin: $ Rev: 164530 Fecha de $ $: 2005-04-25 04:11:07 +0100 (Mon, 25 Apr 2005) $ ejecutar pblica ActionForward ejecutar ( ActionMapping cartografa, ActionForm forma, javax.servlet.ServletRequest solicitud, respuesta javax.servlet.ServletResponse) lanza java.lang.Exception Proceso especificado no de solicitud HTTP, y crear la correspondiente no de respuesta HTTP (o hacia adelante a otro componente web que va a crear), con posibilidad de manejo de excepciones producidas por la lgica de negocio. Devolver un ActionForward ejemplo que describe dnde y cmo el control debe enviar, o null si la respuesta ya se ha completado. La implementacin por defecto intenta transmitir a la versin HTTP de este mtodo. Parmetros: mapping - El ActionMapping utiliza para seleccionar este caso form - El bean ActionForm opcional para esta solicitud (si existe) request - La solicitud HTTP no est aqu response - La falta de respuesta de HTTP que estamos creando Lanza: java.lang.Exception - si la lgica empresarial de aplicacin produce una excepcin. Desde: Struts 1.1

ejecutar

pblica ActionForward ejecutar ( ActionMapping cartografa, ActionForm forma, javax.servlet.http.HttpServletRequest solicitud, respuesta javax.servlet.http.HttpServletResponse) lanza java.lang.Exception Proceso de la peticin HTTP especificado, y crear la correspondiente respuesta HTTP (o hacia adelante a otro componente web que va a crear), con posibilidad de manejo de excepciones producidas por la lgica de negocio. Devolver un ActionForward ejemplo que describe dnde y cmo el control debe ser enviado, o null si la respuesta ya ha sido completado. Parmetros: mapping - El ActionMapping utiliza para seleccionar este caso form - El bean ActionForm opcional para esta solicitud (si existe) request - La solicitud HTTP est aqu: response - La respuesta HTTP que estamos creando Lanza: java.lang.Exception - si la lgica de negocio de aplicaciones genera una excepcin Desde: Struts 1.1

Clase ActionSupport
java.lang.Object org.apache.struts.action.Action org.springframework.web.struts.ActionSupport public abstract class ActionSupport se extiende la accin Convenience class for Spring-aware Struts 1.1+ Actions. Conveniencia de clase para conocer Primavera-Acciones + Struts 1.1. Provides a reference to the current Spring application context, eg for bean lookup or resource loading. Proporciona una referencia al contexto de la primavera aplicacin actual, por ejemplo, para la bsqueda de frijol o de carga de recursos. Auto-detects a ContextLoaderPlugIn context, falling back to the root WebApplicationContext. Autodetecta un contexto ContextLoaderPlugIn, volviendo a la raz WebApplicationContext. For typical usage, ie accessing middle tier beans, use a root WebApplicationContext. Para uso normal, es decir, acceder a los frijoles de nivel medio, el uso de una raz WebApplicationContext. For Struts DispatchActions or Lookup/MappingDispatchActions, use the analogous DispatchActionSupport or LookupDispatchActionSupport / MappingDispatchActionSupport class, respectively. Para DispatchActions Struts o bsqueda MappingDispatchActions /, utilice el anlogo DispatchActionSupport o LookupDispatchActionSupport / MappingDispatchActionSupport clase, respectivamente. Como una solucin alternativa, usted puede transferir sus acciones puntales a s mismos como granos de primavera, pasando por las referencias a ellos a travs de la COI en lugar de buscar las referencias de una manera programtica. Echa un vistazo a DelegatingActionProxy y DelegatingRequestProcessor .

org.springframework.webflow.executor.struts

Clase FlowAction
java.lang.Object org.apache.struts.action.Action org.springframework.web.struts.ActionSupport org.springframework.webflow.executor.struts.FlowAction

FlowAction clase pblica se extiende org.springframework.web.struts.ActionSupport

Punto de integracin entre Struts y Spring Web Flow: una accin de Struts que acta como un controlador de punto de entrada principal en el sistema de flujo web. A FlowAction solo puede lanzar cualquier FlowExecution nuevo. Adems, una accin de flujo solo puede ser seal de eventos en cualquier FlowExecutions existentes / restaurado. Las solicitudes son gestionadas por y delega en un FlowExecutor , que esta clase de delegados a la utilizacin de un FlowRequestHandler (que permite la reutilizacin de la lgica del controlador de flujo frente comn en otros entornos). Consulte la documentacin JavaDoc de las clases para obtener ms informacin sobre cmo se procesan las solicitudes.
y Por defecto, para que este controlador de lanzar un nuevo flujo de ejecucin (la conversacin), que el cliente enva un FlowExecutorArgumentHandler.getFlowIdArgumentName() parmetros de la peticin que indica la definicin de flujo para el lanzamiento. y Para que este controlador de participar en una ejecucin de flujo existentes (conversacin), que el cliente enva un FlowExecutorArgumentHandler.getFlowExecutionKeyArgumentName() parmetro de la solicitud la identificacin de la conversacin a participar pulg

En cada solicitud recibida por esta accin, una StrutsExternalContext objeto se crea como entrada al sistema de flujo web. Este evento fuente externa proporciona acceso a las formas de accin, asignacin de acciones, y otros especficos de las construcciones en Struts. Esta clase tambin es consciente de la SpringBindingActionForm adaptador, que se adapta la infraestructura de enlace de datos de primavera (basado en POJO vinculante, una interfaz estndar de errores, y la conversin de la propiedad editor de tipos) para el modelo de formulario de Struts accin. Esta opcin da a nivel de back-end web de los desarrolladores soporte completo para el enlace basado en POJO con un mnimo de

molestias que, sin dejar de ofrecer consistencia a ver a los desarrolladores que ya tienen mucha experiencia con Struts para las marcas y solicitar el envo. A continuacin se muestra un ejemplo struts-config.xml de configuracin de un FlowAction:
<Ruta action = "/ userRegistration" type = "org.springframework.webflow.executor.struts.FlowAction" name = "springBindingActionForm" scope = "request"> </ Accion>

En este ejemplo se asigna la solicitud lgica URL /userRegistration.do como un controlador de flujo ( FlowAction ). Se espera que los flujos de lanzamiento se presten de manera dinmica por los puntos de vista (lo que permite esta nica FlowAction para manejar cualquier nmero de ejecuciones de flujo). Un resorte de unin instancia del formulario accin se sita en el mbito solicitud, actuando como un adaptador que permite el enlace basado en POJO y validacin con la primavera.

Otras notas sobre puntales / Spring Web Flow integracin:


y

Los nombres lgicos vista devuelta cuando ViewStates y EndStates se introducen se asignan a las plantillas de vista fsico con estndares delanteros de acciones de Struts (normalmente hacia delante global). El uso de la SpringBindingActionForm requiere ninguna configuracin especial en el struts-config.xml : simplemente declarar un bean de formulario en el mbito de solicitud de la clase org.springframework.web.struts.SpringBindingActionForm y utilizarlo con su FlowAction. Esta clase depende de una FlowExecutor instancia que va a configurar. Si confas en la primavera de DelegatingActionProxy (que es lo recomendado), una referencia FlowExecutor slo puede ser inyectado utilizando tcnicas estndar de la primavera de inyeccin de dependencia. Si no est utilizando el enfoque basado en proxy, esta clase tratar de una bsqueda de contexto raz de la inicializacin, primera consulta de un grano de ejemplo FlowExecutor llamado FLOW_EXECUTOR_BEAN_NAME . El FlowExecutorArgumentHandler utilizado por el FlowAction puede ser configurado en el contexto de la raz con un grano de nombre FLOW_EXECUTOR_ARGUMENT_HANDLER_BEAN_NAME . Si no se especifica explcitamente que por defecto a un nivel normal RequestParameterFlowExecutorArgumentHandler con la configuracin estndar.

Los beneficios aqu son considerables: los desarrolladores tienen ahora una capacidad de web potente flujo integrado con Struts, con un enfoque coherente para el enlace basado en POJO y validacin que se refiere a la proliferacin de ActionForm las clases tradicionales en aplicaciones basadas en Struts.
Autor:

Keith Donald, Erwin Vervaet Ver tambin:


FlowExecutor , FlowRequestHandler , SpringBindingActionForm , DelegatingActionProxy.

org.springframework.webflow.action

Clase formAction
java.lang.Object org.springframework.webflow.action.AbstractAction org.springframework.webflow.action.MultiAction org.springframework.webflow.action.FormAction

Todas las interfaces implementadas: org.springframework.beans.factory.InitializingBean, Accin


formAction clase pblica se extiende MultiAction implementa org.springframework.beans.factory.InitializingBean

Multi-action que implementa la lgica comn de hacer frente a las formas de entrada. En esta clase se aprovecha de la web de Primavera de enlace de datos de cdigo para hacer vinculante y validacin. Varios mtodos de ejecucin de la accin se proporcionan:
y setupForm(RequestContext) - Prepara el objeto de formulario para la presentacin de un formulario, creating it y un asociado errors object si es necesario, y luego configurar el almacenamiento en cach en el form object scope y form errors scope , respectivamente. Tambin installs los editores de propiedades personalizadas

para los valores de formato de campo de formulario objeto. Este mtodo de accin volver el "xito" a menos que un evento de excepcin. bindAndValidate(RequestContext) - obliga a todos los parmetros de la peticin entrante al objeto de formulario y valida el objeto de formulario con un registered validator . Este mtodo de accin volver el "xito" de eventos si no hay errores de enlace o de validacin, de lo contrario, devolver el "error" del evento. bind(RequestContext) - obliga a todos los parmetros de la peticin entrante al objeto de formulario. No se realiza una validacin adicional. Este mtodo de accin volver el "xito" de eventos si no hay errores de enlace, de lo contrario, devolver el "error" del evento. validate(RequestContext) - Valida el objeto de formulario con una marca de validacin. No hay enlace de datos se lleva a cabo. Este mtodo de accin volver el "xito" de eventos si no hay errores de validacin, de lo contrario, devolver el "error" del evento.

resetForm(RequestContext) - Restablece la forma de volver a cargar el objeto de formulario de soporte y volver a instalar cualquier editores de propiedades personalizados. Vuelve el "xito" en la finalizacin, se inicia una excepcin cuando se produce un error.

Dado que esta es una accin multi-una subclase puede aadir cualquier nmero de mtodos de accin de ejecucin, por ejemplo, "setupReferenceData (RequestContext)", o "processSubmit (RequestContext)". Mediante esta accin, se hace muy fcil de implementar la preparacin de la forma y la lgica de presentacin en su flujo. Una manera de hacer esto sigue:
1. 2. Crear un estado de vista para mostrar el formulario. En una accin de hacer de ese estado, invocar setupForm para preparar la nueva forma de visualizacin. En un juego en "enviar" transicin ejecutar una accin que invoca bindAndValidate para enlazar parmetros de entrada peticin al objeto de formulario y validar el objeto de formulario. Si hay errores de enlace o de validacin, la transicin no ser permitido y el estado de vista de forma automtica se volver a entrar. Si la validacin es vinculante y pasar con xito a un estado de accin llamada "processSubmit" (o cualquier otro nombre adecuado). Esto invocar un mtodo de accin llamado "processSubmit" debe proporcionar en una subclase de proceso de envo del formulario, por ejemplo, la interaccin con la lgica de negocio. Si el proceso de negocio est bien, seguir a un estado de vista para mostrar la vista el xito.

3. 4.

5.

Aqu est un ejemplo de implementacin de un flujo de forma compacta:


<view-state id="displayCriteria" view="searchCriteria"> <render-actions> <accion bean="formAction" method="setupForm"/> </ Render-acciones> <transition on="search" to="executeSearch"> <accion bean="formAction" method="bindAndValidate"/> </ Transicin> </ Del estado de vista> <action-state id="executeSearch"> <accion bean="formAction" method="executeSearch"/> <transition on="success" to="displayResults"/> </ Accion de estado> Cuando se necesita una mayor flexibilidad en cuenta la divisin del estado de la vista por encima de actuar como un estado de forma lgica nica en varios estados. Por ejemplo, usted podra tener un estado de accin de la manilla de instalacin forma, un estado de vista desencadenador de visualizacin forma, otro estado accin de la manilla de enlace de datos y validacin, y otro proceso de envo de formulario. Esto sera un poco ms detallado, sino que tambin le dar ms control sobre cmo responder a los resultados especficos de grano fino, las acciones que se producen dentro del flujo.

Subclasificacin de los ganchos:


y

y y

Un gancho importante es createFormObject . Usted puede modificar este para personalizar la forma en que el respaldo proviene de la instancia de objeto (por ejemplo, crear instancias de forma transitoria en la memoria o se carga desde una base de datos). Un mtodo de gancho opcional que ofrece esta clase es initBinder . Esto se llama despus de una nueva carpeta de datos se crea. Otro mtodo es opcional ook registerPropertyEditors(PropertyEditorRegistry) . Por razones imperiosas que puede registrar cualquier editores de propiedades necesarias para su formulario. En lugar de reemplazar este mtodo, la definicin de una explcita PropertyEditorRegistrar estrategia como una forma ms reutilizables que encapsulan la lgica de instalacin personalizada PropertyEditor. Anular validationEnabled(RequestContext) para decidir de forma dinmica o no hacer la validacin sobre la base de datos disponibles en el contexto de la solicitud.

Tenga en cuenta que esta accin no constituye una referenceData () de gancho similar a la de Spring MVC es SimpleFormController . Si usted desea exponer los datos de referencia para poblar bajadas forma de gota se puede definir un mtodo de accin personalizada en la subclase formAction que hace precisamente eso. Basta con invocar, ya sea como una accin encadenada, como parte del estado setupForm, o como una definicin del estado de grano fino s mismo. Por ejemplo, puede crear este mtodo en la subclase:
Evento pblico setupReferenceData (RequestContext contexto) throws Exception { MutableAttributeMap requestScope context.getRequestScope = (); requestScope.put ("REFDATA", lookupService.getSupportingFormData ()); Devuelve un valor verdadero (); }

... y luego invocar as:


<view-state id="displayCriteria" view="searchCriteria"> <render-actions> <accion bean="searchFormAction" method="setupForm"/> <accion bean="searchFormAction" method="setupReferenceData"/> </ Render-acciones> ... </ Del estado de vista>

Este estilo de llamar a varios mtodos de accin de una cadena (Cadena de responsabilidad) es preferible a overridding un mtodo de accin simple. En general, el mtodo de la accin principal es desalentado.

Cuando se trata de validar datos presentados con una marca Validator , esta clase ofrece las siguientes opciones:

y y

Si no desea que la validacin en todas, simplemente llame a bind(RequestContext) en lugar de bindAndValidate(RequestContext) o no se registra un validador. Si desea que poco a poco la validacin, por ejemplo, en un asistente de varias pginas, llame bindAndValidate(RequestContext) o validate(RequestContext) y especifique un validatorMethod cualidad de la accin de ejecucin. Esto invocar el mtodo identificado validador en el validador. La firma del mtodo de validacin deben seguir el siguiente patrn:
public void {$ validateMethodName} ($ {} formObjectClass, errores)

Por ejemplo, tener una definicin de la accin de esta manera:


<accion bean="searchFormAction" method="bindAndValidate"> <attribute name="validatorMethod" value="validateSearchCriteria"/> </ Accion>

Dara lugar a la public void validateSearchCriteria (SearchCriteria, errores) de la registrada validador que se llama si la clase de objeto de formulario se SearchCriteria .
y

Si quieres hacer una validacin completa con la validate mtodos de validacin del registro, llame a bindAndValidate(RequestContext) o validate(RequestContext) sin especificar una "validatorMethod" atributo ejecucin de la accin.

FormAction propiedades configurables


nombre defecto descripcin

formObjectName

El nombre del objeto de formulario. El objeto de formulario formObjec se encuentra en el mbito configurado utilizando este nombre. t La clase de objeto de formulario para esta accin. Un ejemplo de esta clase tendr pobladas y validado. Necesario cuando se utiliza un validador. El mbito en el que ser el objeto de formulario puesto. Si se pone en el alcance del flujo del objeto se almacenan en cach y reutilizar durante la vida til de la corriente, la preservacin de los valores anteriores. mbito de aplicacin se solicite resultar en una nueva instancia de nuevo objeto de formulario que se crear en cada solicitud en la ejecucin de

formObjectClass

nulo

formObjectScope

flow

flujo. El mbito en el que el objeto de formulario errores instancia se pondr. Si se pone en forma de errores de flash mbito de aplicacin se almacena en cach hasta que el evento siguiente usuario se seala. La estrategia utilizada para registrar un editor personalizado con la carpeta de datos. Esta es una alternativa para reemplazar el
registerPropertyEditors(PropertyEditorRegistry ) el mtodo del gancho.

formErrorsScope

flash

propertyEditorRegistra nulo r

validador

nulo

El validador de la accin. El validador debe ser compatible con la clase de forma de objeto especificado. Establecer la estrategia a utilizar para resolver los errores en los cdigos de mensaje.

messageCodesResolver Autor:

nulo

Erwin Vervaet, Keith Donald Ver tambin:


PropertyEditorRegistrar , DataBinder , ScopeType

You might also like