Você está na página 1de 30

Diplomado Java

Developer
Mdulo 4: Sesin 1

Ing. Luis Martn Canaval Snchez

Agenda

Estructura de un proyecto Struts 2.


Estructura del archivo struts.xml.
Acciones.
Struts 2 tag libs.
Entidades y servicios.
Variables de sesin.

Ing. Luis Martn Canaval Snchez

Estructura de un proyecto Struts 2


Un proyecto struts 2 cumple con el estndar de
estructura de una aplicacion Java Web con la
nica consideracin de contener algunos
archivos adicionales, as como un conjunto
mnimo de libreras y dependencias.

Ing. Luis Martn Canaval Snchez

...Estructura de un proyecto Struts 2


web.xml

Ing. Luis Martn Canaval Snchez

...Estructura de un proyecto Struts 2


struts.xml

Ing. Luis Martn Canaval Snchez

...Estructura de un proyecto Struts 2


Dependencias

Ing. Luis Martn Canaval Snchez

Estructura del archivo struts.xml

Request

Accin

html, xml, pdf,


text, etc.

Ing. Luis Martn Canaval Snchez

Resultado

Response

...Estructura del archivo struts.xml


struts
constant: name, value
package: name, extends
action: name, class, method

result: name, type

result-types
interceptors
interceptor-stack
interceptor-ref
default-interceptor-ref
default-action-ref
global-results

Ing. Luis Martn Canaval Snchez

...Estructura del archivo struts.xml


Constantes
Permiten definir parametros de
configuracin de manera sencilla, es una
alternativa al uso del archivo struts.
properties.
Ejemplo: <constant name="struts.devMode"
value="true" />
Referencias:

http://struts.apache.org/2.x/docs/constant-configuration.html
http://struts.apache.org/2.x/docs/strutsproperties.html

Ing. Luis Martn Canaval Snchez

...Estructura del archivo struts.xml


Package
Permite organizar acciones, interceptores y
resultados.
Ejemplo: <package name="padawan"
extends="struts-default">
Referencias:

http://struts.apache.org/2.x/docs/package-configuration.html

Ing. Luis Martn Canaval Snchez

...Estructura del archivo struts.xml


Acciones
Permite mapear un identificador de recurso
(URI/URL) a una clase Accin.
El identificador debe coincidir con el nombre
de la accin.
Opcionalmente se puede indicar una clase
accin y mtodo a ejecutar, los cuales se
correspondern con un set de resultados.
Referencias

http://struts.apache.org/2.x/docs/action-configuration.html

Ing. Luis Martn Canaval Snchez

...Estructura del archivo struts.xml


Resultados
Son activados cuando el mtodo ejecutado
de la clase accin finaliza. El resultado es
seleccionado dependiendo del valor
devuelto por el mtodo.
Referencias:

http://struts.apache.org/2.x/docs/result-configuration.html

Ing. Luis Martn Canaval Snchez

...Estructura del archivo struts.xml


<a href="hola.action">Soy
un link! click me!</a>

<action name="hola" class="go.HolaAction"


method="go">
<result name="ok">go.jsp</result>
</action>

Soy un link!
click me!

class HolaAction {
public String go() { return "ok"; }
}

Ing. Luis Martn Canaval Snchez

Acciones
class SimpleAction {
private Figura figura;
public Figura getFigure() {return figura;}
public void setFigura(Figura f) {figura = f;}
public String doSomething() {
figura = new Figura();
return "resultado";
}
}
Ing. Luis Martn Canaval Snchez

...Acciones
Propiedades y sus
respectivos setters y
getters para poder ser
visibles desde vistas
JSP.
SimpleAction
figura:Figura
getFigura(): Figura
setFigura(Figura f)
doSomething(): String

Ing. Luis Martn Canaval Snchez

Operaciones de la
accin.

Struts 2 tag libs


Para usar los tag libs the Struts 2 en pginas
JSP debemos incorporar la directiva
<%@ taglib prefix="s" uri="/struts-tags" %>
al inicio del archivo.

Ing. Luis Martn Canaval Snchez

...Struts 2 tag libs


URL
figura.id = 99
<%-- JSP --%>
<s:url id="link" action="hola" />
<s:url id="link2" action="eliminar">
<s:param name="id" value="figura.id" />
</s:url>

hola.action
eliminar.action?id=99

Ing. Luis Martn Canaval Snchez

...Struts 2 tag libs


Link (Anchors)
<%-- JSP --%>
<s:url id="link" action="hola" />
<s:a href="%{link}">Un link!</s:a>

<!-- HTML -->


<a href="hola.action">Un link!</a>

Ing. Luis Martn Canaval Snchez

...Struts 2 tag libs


Condicional
nota = 9
<%-- JSP --%>
<s:if test="%{nota > 10}">
<p>Aprobado</p>
</s:if>
<s:elseif test="%{nota > 6}">
<p>Aplazado</p>
</s:elseif>
<s:else>
<p>Jalado</p>
</s:else>

<!-- HTML -->


<p>Aplazado</p>

Ing. Luis Martn Canaval Snchez

...Struts 2 tag libs


Propiedades
figura.color = red
contador = 100
<%-- JSP --%>
<h1><s:property value="figura.color" /></h1>
<p><s:property value="contador" /></p>

<!-- HTML -->


<h1>red</h1>
<p>100</p>

Ing. Luis Martn Canaval Snchez

...Struts 2 tag libs


Iteradores
figuras[0].color = red
figuras[1].color = green
figuras[2].color = blue
<%-- JSP --%>
<s:iterator value="figuras">
<p><s:property value="color" /></p>
</s:iterator>

<!-- HTML -->


<p>red</p>
<p>green</p>
<p>blue</p>

Ing. Luis Martn Canaval Snchez

...Struts 2 tag libs


...Iteradores
<%-- JSP --%>
<s:iterator value="figuras" status="std">
<s:if test="#std.odd"><p class="gray"></s:if>
<s:else><p></s:else>
<s:property value="#std.index" />:
<s:property value="color" /></p>
</s:iterator>

Adicionales:
#std.last

Ing. Luis Martn Canaval Snchez

figuras[0].color = red
figuras[1].color = green
figuras[2].color = blue

<!-- HTML -->


<p>0: red</p>
<p class="gray">1: green</p>
<p>2: blue</p>

...Struts 2 tag libs


Formularios
<%-- JSP --%>
<s:form action="procesar">
<s:hidden name="personaje.personajeId" />
</s:form>

Adicionales:
atributo theme

Ing. Luis Martn Canaval Snchez

<!-- HTML -->


<form id="procesar" method="post" action="
procesar.action">
...
<input type="hidden" id="
procesar_personaje_personajeId" name="
personaje.personajeId" />
...
</form>

...Struts 2 tag libs


Cajas de texto
<%-- JSP --%>
<s:textfield label="Color" name="figura.color" />
<s:textarea label="Desc" name="descripcion" />

Adicionales:
atributo theme

Ing. Luis Martn Canaval Snchez

<!-- HTML -->


...
<label for="procesar_figura_color">Color</label>
...
<input type="text" name="procesar_figura_color" />
...
<label for="procesar_descripcion">Desc</label>
...
<textarea name="procesar_descripcion" />

...Struts 2 tag libs


Select

figuras[0].color = red
figuras[0].figuraId=1
figuras[1].color = green
figuras[1].figuraId=3

<%-- JSP --%>


<s:select label="Color" list="figuras" listKey="
figuraId" listValue="color" name="color" />

Adicionales:
listas estticas

Ing. Luis Martn Canaval Snchez

<!-- HTML -->


...
<select name="procesar_color">
<option value="1">red</option>
<option value="3">green</option>
</select>

...Struts 2 tag libs


Radios y Checkboxes
<%-- JSP --%>
<s:radio label="Color" list="figuras" listKey="
figuraId" listValue="color" name="color" />
<s:checkbox label="Suscribir" name="suscrbr" />

Adicionales:
lista de checkboxes.

Ing. Luis Martn Canaval Snchez

figuras[0].color = red
figuras[0].figuraId=1
figuras[1].color = green
figuras[1].figuraId=3

<!-- HTML -->


...
<input type="radio" name="procesar_color"
value="1" /> red <input type="radio" name="
procesar_color" value="3" /> green
...
<input type="checkbox" name="procesar_suscrbr"
/> Suscribir

Entidades y Servicios
Las entidades son clases que definen la
estructura de los datos a manejar por la
aplicacin, por lo general existe
correspondencia con Tablas de una Base de
Datos relacional. Son clases POJO.
Los servicios por su parte, son clases en las
cuales se implementan las operaciones a
realizar sobre los datos definidos por las
entidades.
Mas detalles en la sesin 3: Persistencia.
Ing. Luis Martn Canaval Snchez

Variables de Sesin
De manera similar a JSP convencional, Struts
2 permite el uso de variables de sesin. Para
usarlas tenemos la siguiente sintaxis.
// Definir short cut
Map<String, Object> session = ActionContext.getContext().getSession();
// Recuperar valores
Figura figura = (Figura) session.get("figura");
// Almacenar valores
session.put("figura", figura);
Ing. Luis Martn Canaval Snchez

Referencias
Budi Kurniawan, Struts 2 Design and
Programming: A Tutorial, Brainy Software.
Donald Brown & Chad Michael Davis, Struts
2 in Action, MAEP Edition, Editorial
Manning.
http://struts.apache.org/2.x/docs/guides.html

Ing. Luis Martn Canaval Snchez

Preguntas?

Ing. Luis Martn Canaval Snchez

Você também pode gostar