Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Apache Jakarta Struts (página 3)




Enviado por Pablo Turmero



Partes: 1, 2, 3, 4

Monografias.com
Procesamiento de petición en Struts II
public class GotoMessageAction
extends org.apache.struts.action.Action {

public ActionForward execute(
ActionMapping mapping,
ActionForm actionForm,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {

// lots of code omitted for clarity, but here the
// business logic should be implemented
ActionForward af = mapping.findForward("succeeded");
return af;
}
}

Monografias.com
Procesamiento de petición en Struts III
De los cuatro parámetros recibidos en execute(), ActionMapping y ActionForm son específicos a Struts
El objeto ActionMapping contiene información de configuración proveniente de struts-config.xml file.
El objeto ActionForm contiene el bean del formulario que fue inicializado por el ActionServlet al procesar la petición

Monografias.com
Procesamiento de petición en Struts IV
En el mapeo de la acción GotoReplyToAction hay dos posibles forward definidos:
Uno con el nombre "succeeded" y otro
"failed“
Si el método execute() se completa sin errores el método ActionMapping.findForward() es llamado, pasando el nombre del siguiente recurso a llamar.
El método findForward() devuelve un objeto ActionForward que es pasado al ActionServlet
El objeto ActionForward contiene detalles de a dónde debería el ActionServlet enviar la petición (contiene el path del JSP que va a visualizar los resultados)

Monografias.com
Manejo de errores en Struts I
Struts define la clase ActionErrors que mantiene una colección de objetos ActionError.
ActionErrors errors = new ActionErrors();
errors.add (ActionErrors.GLOBAL_ERROR,
new ActionError("error.signing.connect"));
saveErrors(request,errors);
return (new ActionForward (mapping.findForward(“failed")));
El código añade un sólo objeto ActionError a la colección, pero si se llevase a cabo validación de los campos de un formulario varios errores podrían ser mostrados.
Luego devuelve una instancia de ActionForward que redirige a "failed".
El ActionServlet guardará en el objeto request el objeto ActionErrors bajo un nombre bien conocido por Struts:
request.setAttribute( Action.ERROR_KEY, errors);
Este objeto ActionErrors es ahora disponible a cualquier página o acción consecutiva.
La página JSP “failed” anterior debería tener un área donde se mostrasen los errores producidos.
El string usado para construir un objeto ActionError no es un mensaje de error sino que un identificador de un recurso (i18n Struts)

Monografias.com
Manejo de errores en Struts II
public class GotoMessageAction extends org.apache.struts.action.Action {
public ActionForward execute(ActionMapping mapping,
ActionForm actionForm,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
ActionErrors errors = new ActionErrors();
try {
// business logic omitted for clarity
} catch(SQLException e) {
errors.add(ActionErrors.GLOBAL_ERROR,
new ActionError("error.sqlerror"));
}

if (!errors.empty()) {
saveErrors(request, errors);
ActionForward af = mapping.findForward("failed");
return af;
}

request.setAttribute(Message.MESSAGE_NAME, message);
ActionForward af = mapping.findForward("succeeded");
return af;
}
}

Monografias.com
Manejo de Formularios I
La otra acción definida en el fichero de configuración de Struts era:

Esta acción está asociada con el formulario llamado SigningForm, también definido en el fichero de configuración:

Monografias.com
Manejo de Formularios II
Si una acción tiene un formulario asociado a ella (atributo name en action mapping), el ActionServlet crea un form bean
Todo form bean hereda de org.apache.struts.action.ActionForm, que es un JavaBean serializable.
Dos métodos en ActionForm pueden ser sobreescritos:
validate() y
reset()

Monografias.com
Manejo de Formularios III
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if ((username == null) || (username.length() < 1))
errors.add ("username",
new ActionError("error.username.required"));
if ((password == null) || (password.length() < 1))
errors.add("password",
new ActionError("error.password.required"));
return errors;
}
El FormBean es poblado por el ActionServlet con los parámetros de la petición de entrada llamando a los métodos setXXX() correspondientes.
Una vez poblado, el form bean es validado:
Si el objeto ActionErrors devuelto es null o vacío significa que la validación tuvo éxito y una instancia del form bean creado, en este caso SigningForm, es pasado al objeto SigningAction
Si la validación falla, la petición será re-direccionada por Struts a la página que contenía el formulario inicialmente el formulario, dada por el atributo input del elemento action en struts-config.xml

Monografias.com
Manejo de Formularios IV
public class SigninForm extends ActionForm {
String userName = null;
String password = null;

public SigninForm() {}

public void setUsername(String userName) {
this.userName = userName;
}

public String getUserName() {
return this.userName;
}

public void setPassword(String password) {
this.password = password;
}

public String getPassword() {
return this.password;
}

Monografias.com
Manejo de Formularios V
// accessors and mutator omitted for clarity
public ActionErrors validate(ActionMapping actionMapping,
HttpServletRequest httpServletRequest) {
ActionErrors errors = new ActionErrors();
if ((password == null) || (password.length() < 1))
errors.add("password", new ActionError("error.password.required"));
if ((userName == null) || (userName.length() < 1))
errors.add("username", new ActionError("error.username.required"));
return errors;
}

public void reset(ActionMapping actionMapping,
HttpServletRequest httpServletRequest) {
username = "";
password="";
}
}

Monografias.com
Manejo de Formularios VI
public class SigninAction
extends org.apache.struts.action.Action {

public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {

try {
String username = ((SigninForm) form). getUserName();
String password = ((SigninForm) form). getPassword();
// etc.
}
}
}

Monografias.com
DataSources en Struts
try {
DataSource ds = servlet.findDataSource(“usuarios”);
message = new Message();
message.getMessage(ds,
request.getParameter( Message.MESSAGE_ID)),
request.getParameter( GROUP_ID_NAME))
}
El código arriba muestra otra característica de Struts, la habilidad de configurar y usar referencias a javax.jdbc.DataSources
El extracto de struts-config.xml anteriormente mostrado tiene una sección para configurar las data sources de la aplicación.
Struts provee las clases GenericDataSource y GenericConnection que son wrappers sobre los objetos JDBC Connections y DataSources definidos en el fichero de configuración.

Monografias.com
Struts Tag Libraries
Documentadas en http://www.onjava.com/lpt/a/4034
La framework Struts proporciona un conjunto de 6 librerías de etiquetas, que asisten en la tarea de la creación de la vista de MVC para evitar incluir código Java en los JSPs:
Bean Tags
HTML Tags
Logic Tags
Nested Tags
Template Tags
Tiles Tags
Las funcionalidad de las etiquetas definidas en las librerías Bean y Logic es también provista por las librerías core y fmt de JSTL
Se recomienda el uso de las librerías en JSTL

Monografias.com
HTML Tags
Estas etiquetas son principalmente usadas para:
Crear formularios de entrada de datos y
Otras utilidades para visualizar interfaces basados en HTML.
Algunas de las acciones más útiles son:
base ? genera un elemento HTML
errors ? condicionalmente visualiza un conjunto acumulado de mensajes de error
form ? define un formulario de entrada
text ? visualiza un campo de entrada de tipo texto
messages ? condicionalmente visualiza un conjunto de mensajes acumulados
submit ? visualiza un botón de entrega
Etc.

Monografias.com
Logic Tags
Usadas para:
Iterar sobre colecciones
Generación condicional de salida, y
Flujo de aplicación
Algunas de las acciones más útiles son:
present ? genera el contenido de marcado dentro de esta etiqueta si el valor indicado es encontrado en esta petición
notPresent ? lo opuesto a present
iterate ? repite el contenido anidado dentro de esta etiqueta al iterar sobre una colección
forward ? transfiere control a la página especificada por la entrada ActionForward.
Etc.

Monografias.com
Tiles Tags (Framework)
La librería de etiquetas Tiles es un super-conjunto de la librería Templates
Intenta evitar la duplicación de contenido de lenguaje de marcado dentro de una aplicación web con respecto al look-and-feel de un portal:
Un mecanismo normalmente utilizado es usar la directiva jsp:include para añadir cabeceras/menús y pies de páginas a un portal web
Tiles reduce el tamaño de código redundante en una aplicación web y separa el contenido de la visualización del mismo de manera más eficiente
Tiles define Layout Managers para JSPs
Su objetivo principal es evitar en los JSPs contenido de marcado que corresponda con el layout del portal ? factoriza este marcado, de tal manera que la modificación del layout sea sencilla y eficiente

Monografias.com
JSP Templates
Un template es una página JSP que usa una librería de etiquetas personalizadas para describir la disposición (layout) de los componentes de la página
Define cómo aparecerán las páginas JSP de una aplicación, sin especificar el contenido
Esta definición es utilizada por todos los JSPs sin necesidad de mezclar layout con contenido

Monografias.com
Ejemplo Tiles: index.jsp I

Monografias.com
Ejemplo Tiles: index.jsp II

Monografias.com
Title: Ejemplo Tiles: storefront DefaultLayout.jsp
Body:

Partes: 1, 2, 3, 4
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter