Un procesamiento enviado al servidor generalmente se puede dividir en dos etapas. La primera etapa consulta el estado del servidor (consultas o actualiza la base de datos), y la segunda etapa selecciona una página de resultados adecuada y la devuelve al usuario (el contenido del resultado se discutirá aquí).
Struts2 proporciona soporte para diferentes tipos de resultados de retorno, los comunes incluyen JSP, marca libre, velocidad, etc.
Los diferentes tipos de resultados de retorno compatibles con Struts2 son:
| nombre | ilustrar |
|---|---|
| Resultados de la cadena | Se usa para manejar cadenas de acción |
| Resultados del despachador | Solía pasar a las páginas, generalmente manejar JSP |
| Resultados de la marca libre | Manejar plantillas de marca libre |
| Resultados de httpheader | Se utiliza para controlar el comportamiento especial de HTTP |
| Resultado de redirección | Redirigir a una URL |
| Redirigir los resultados de la acción | Redirigir a una acción |
| Resultados de la corriente | Enviar objeto InputSream al navegador, generalmente utilizado para procesar las descargas de archivos |
| Resultados de la velocidad | Manejar plantillas de velocidad |
| Resultados de XLS | Proceso de plantillas XML/XLST |
| Resultado de texto sin formato | Mostrar contenido de archivo original, como el código fuente del archivo |
| S2Plugins: resultado de mosaicos | Usar en combinación con mosaico |
Además, el tipo de resultado de terceros también incluye el complemento JasperReports, que se usa especialmente para procesar la salida del informe del tipo JasperReport.
Ya hay definiciones para todos los tipos de resultados en el archivo struts-default.xml:
<sult-types> <result-type name = "chain" class = "com.opensymphony.xwork2.ActionChainResult"/> <result-type name = "despachador" class = "org.apache.struts2.dispatcher.servletdispatcherresult" default = "true"/> <resultado-type-typee name = "freemarker" class = "org.apache.struts2.views.freemarker.freemarkerResult"/> <result-type name = "httpheader" class = "org.apache.structs2.dispatcher.httpheaderResult"/> <resultado-type name = "redirect" class = "org.apache.structs2.dispatcher.servletedirectresult"/> <result-type name = "redirectation" class = "org.apache.structs2.dispatcher.servletactionResult"/> <ven-type-type-type-type-type name = "stream" class = "org.apache.structs2.dispatcher.streamResult"/> <result-type name = "Velocity" class = "org.apache.struts2.dispatcher.velocityResult"/> <result-type name = "xslt" class = "org.apache.struts2.views.xslt.xsltresult" /> <result-type name = "asignext" class = "org.apache.struts2.dispatcher.laintextresult" /> <!-Formulario de nombre deprimido programado para la eliminación en los struts 2.1.0.the Camelcase Versions son preferidos. Consulte WW-1707-> <result-type name = "redirect -act-daction" class = "org.apache.structs2.dispatcher.servletactionRedirectresult"/> <result-type name = "astaintext" class = "org.apache.struts2.dispatcher.laintextresult"/> </sult-types>
En el código anterior, podemos ver que cuando no se especifica el tipo de resultado, se usa.
Definir un valor de resultado,
<Result name = "Success" type = "despachador"> <param name = "ubicación">/graciasu.jsp </param> </resultado>
Dado que el valor predeterminado del tipo es el despachador, no hay necesidad de definirlo aquí. Además, el valor predeterminado de nombre es el éxito, por lo que no hay necesidad de definirlo aquí.
El código anterior se puede abreviar como:
<resultado> <param name = "ubicación">/graciasu.jsp </amam> </ resultado>
Además, los parámetros de ubicación también se pueden desinstalar directamente de la etiqueta de resultados, por lo que la forma más simple de escribir el código anterior es:
<resultado> /thankyou.jsp </ resultado>
También podemos definir múltiples resultados diferentes
<Action name = "Hello"> <resultado> /hello/Result.jsp </resultado> <resultado name = "error">/hello/error.jsp </resultado> <resultado name = "input">/hello/input.jsp </resultado> </action>
El significado del código anterior es que la acción con el nombre Hello tiene tres devoluciones, y todos son tipos de despachador (tipo predeterminado). Los nombres de estos tres valores de retorno son el éxito (valor predeterminado), error e entrada. Las rutas de página correspondientes son /hello/result.jsp, /hello/error.jsp, y /hello/input.jsp.
A veces necesitamos un resultado global definido. En este momento, podemos definir un resultado global dentro del paquete, por ejemplo:
<Global-results> <resultado name = "error">/error.jsp </ resultado> <resultado name = "invalid.token">/error.jsp </ resultado> <resultado name = "login" type = "redirect-accy"> logon! input </resultado> </global-esults>>
Resultados de devolución dinámica
A veces, solo sabemos qué resultado regresar cuando la acción ejecuta la BI completa. En este momento, podemos definir una propiedad dentro de la acción, que se utiliza para almacenar el valor del resultado después de que la acción ejecuta la BI completa, por ejemplo:
String private NextAction; public String getNextAction () {return nextAction;} En el archivo de configuración strutx.xml, podemos usar $ {nextAction} para hacer referencia a las propiedades en la acción, y devolver dinámicamente el resultado a través del contenido representado por $ {nextAction}, por ejemplo:
<Action name = "fragment"> <resultado name = "next" type = "redirect-accion"> $ {nextAction} </resultado> </action> Cuando el método de ejecución de la acción anterior regresa a continuación, también es necesario determinar qué acción se encuentra en función de las propiedades de NextAction.
Si desea reenviar otra acción, puede establecer Type = Chain y el resultado no se agregará a SHTML.
Lo anterior es toda la explicación detallada de los parámetros del resultado Struts2. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.