introduccion struts2
DESCRIPTION
TRANSCRIPT
![Page 1: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/1.jpg)
4ta. Reunión SpringHispano & JavaMexico
Struts 2Struts 2
![Page 2: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/2.jpg)
Agenda
• Introducción Framework
• Características nuevas
• Configuración
• Plugin Spring
![Page 3: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/3.jpg)
Introducción Framework
![Page 4: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/4.jpg)
Caracteristicas Struts2
Basado en POJO’s Conversion de Datos Inyección de Dependencias Validaciones Flexible con etiquetas para Ajax Soporte OGNL Testability
![Page 5: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/5.jpg)
Configuración XMLo Ahora la configuración se basa en paquetes donde cada paquete
contiene los actions.
o Permite heredar configuraciones de otro paquete.
<struts>
<constant name="struts.objectFactory" value="spring" />
<package name="defaulf" namespace="/" extends="struts-default">
<action name="index" class="mx.com.mexico.IndexAction">
<result>/jsp/index.jsp</result>
</action>
</package>
</struts>
![Page 6: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/6.jpg)
Como creo un Action?o Los actions se basan en POJO’s.
public class HelloWorldAction extends ActionSupport {
private Date now;
private String name;
@RequiredFieldValidator ( message = "Por favor ingresa la fecha” )
public void setDateNow( Date now ) { this.now = now; }
public Date getDateNow() { return now; }
@RequiredStringValidator ( message = "Por favor ingresa el nombre", trim = true )
public void setName(String name) { this.name = name; }
public String getName() { return this.name; }
public String execute() throws Exception {
return SUCCESS;
}
}
![Page 7: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/7.jpg)
Conversion datoso Facilita el manejo de tipo de datos como los Date, Time
@TypeConversion(converter = ”org.struts2.DateConverter")
public Date getDateNow() { return now; }
public class DateConverter extends StrutsTypeConverter {
public String convertToString(Map context, Object o) {
if (o instanceof Date) {
return sdf.format((Date)o);
}
return "";
}
![Page 8: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/8.jpg)
Inyeccion de Dependencias
o Plugin Spring: Framework OpenSource de IoC y más que eso!
o Plugin Plexus
o Google Guice
![Page 9: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/9.jpg)
Elementos basicos
o ActionSupport: Clase para manejo de los request
o Result
o default
o redirect-action
o Redirect
o Freemarker
o Velocity
o stream
o Interceptor
o validationWorkflowStack
o fileUploadStack
o paramPrepareParamsStack
o etc…
![Page 10: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/10.jpg)
Configuracion Wildcard
o Esta forma de configuracion es muy flexible para invocar diferentes metodos de nuestros actions
<action name="*Telefono" method="{1}" class="mx.com.mexico.actions.telefono.TelefonoAction">
<result>/jsp/telefono/{1}Telefono.jsp</result>
<result name="exito" type="redirect-action">allTelefono</result>
<result name="input">/jsp/telefono/allTelefono.jsp</result>
</action>
public String edit() throws Exception {telefono = telefonoService.find( id );return SUCCESS;
}
public String all() throws Exception {telefonos = telefonoService.findAll();return SUCCESS;
}
![Page 11: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/11.jpg)
Soporte para OGNL (Object Graph Navigation Language)
Una tecnologia para el manejo de propiedades en los objetos Java
Ejemplos:
<s:property value="#session.mySessionPropKey"/>
<s:property value="#session['mySessionPropKey']"/>
<s:property value="#request['myRequestPropKey']"/>
<s:property value="address.postcode"/>
<s:property value=“@com.static.Constants@getRoles()” />
<s:property value=“@com.static.Constants@USER_NAME” />
<s:if test=” 'foo' in {'foo','bar'}”>
<s:if test=“ listaElementos.size > 0 ” >
![Page 12: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/12.jpg)
Que mas hay??
Soporte para:
o JasperReports
o JFreeChart
o JSF
o Struts1
o Portlets
o REST
o Tiles
o TestNG
![Page 13: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/13.jpg)
![Page 14: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/14.jpg)
Caracteristicas Struts2 version 2.1
Anotaciones en lugar de configuración XML
Convensión sobre configuración Mas diversidad soporte para Ajax
( Dojo, YUI, Ajax file Upload, GWT, JSON )
![Page 15: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/15.jpg)
Recursos
o Struts: http://struts.apache.org/2.1.6/
o http://struts.apache.org/2.1.6/docs/guides.htm
o http://www.infoq.com/minibooks/starting-struts2l
o http://www.javaworld.com/javaworld/jw-10-2008/jw-10-struts2validation.html
o http://www.struts2.net/
![Page 16: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/16.jpg)
Preguntas??
![Page 17: Introduccion Struts2](https://reader033.vdocuments.co/reader033/viewer/2022061213/5498389eb47959da0f8b4f33/html5/thumbnails/17.jpg)
GRACIAS….
Esten pendientes de
www.springhispano.org
www.javamexico.org
http://www.planetajava.org/