escuela técnica superior de ingeniería informática

Struts Básico

Departamento de Lenguajes y Sistemas Informáticos Informá

Grupo de Ingeniería del Software Ingenierí Febrero 2007
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)

[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)

Struts Básico

• Introducción Introducció
Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos

– Proyecto Jakarta – Estándar “de facto” – Aplicaciones J2EE web – MVC2 – Servlets + JSP y XML Contenedor Web Vista y Controlador

1. Introducción Introducció 2. Estructuras 2.1 Struts y MVC2 2.2 Proyecto J2EE 2.3Integrar struts 3. Elementos de Struts 3.1 struts-config.xml struts3.2 Actions 3.3 ActionMappings 3.4 ActionForms 4. Librerías de Librerí Etiquetas 4.1 html y logic 4.2 bean y nested 5. Internacionalización Internacionalizació 5.1 i18n en JSP • 2 i18n en Actions • Bibliografía Bibliografí

Sevilla, abril de 2007 Grupo de Ingeniería del Software

Versión original: Autor (mes 200?) Última revisión: Autor (mes 200?); descripción cambios.

Tiempo: ?h

1

3 ActionMappings 3.1 html y logic 4.1 Struts y MVC2 2.3Integrar struts 3. Internacionalización Internacionalizació 5.2 bean y nested 5. Librerías de Librerí Etiquetas 4.1 i18n en JSP • 2 i18n en Actions • Bibliografía Bibliografí Sevilla.2 Actions 3. Estructuras 2. abril de 2007 Grupo de Ingeniería del Software 2 .1 i18n en JSP • 2 i18n en Actions • Bibliografía Bibliografí Sevilla. abril de 2007 Grupo de Ingeniería del Software [Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Struts Básico • Estructura de un proyecto Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos Web J2EE 1.2 Proyecto J2EE 2.[Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Struts Básico • Struts y MVC2 Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos 1. Elementos de Struts 3.xml struts3. Estructuras 2. Introducción Introducció 2.1 Struts y MVC2 2.4 ActionForms 4. Librerías de Librerí Etiquetas 4.2 bean y nested 5.2 Actions 3.3Integrar struts 3.4 ActionForms 4.2 Proyecto J2EE 2. Introducción Introducció 2.1 struts-config. Internacionalización Internacionalizació 5.1 struts-config.1 html y logic 4. Elementos de Struts 3.xml struts3.3 ActionMappings 3.

struts.name> action</servlet.config_1_2.value> <param-value> /WEB-INF/struts-config.4 ActionForms 4.3 ActionMappings 3. abril de 2007 Grupo de Ingeniería del Software [Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Struts Básico • Struts-config.org/dtds/struts-config_1_2.2 Proyecto J2EE 2.param> <init-param> <param-name>config</param-name> param.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software <!DOCTYPE strutsstruts-config PUBLIC ""-//Apache Software Foundation//DTD Struts Configuration 1.mapping> <servlet-mapping> <servlet-name>action</servlet-name> servlet.do</url-pattern> </servlet-mapping> </servlet-mapping> </servlet-mapping> 1.name> <param-name>config</param-name> <param-value> param.1 html y logic 4.name> <servlet-name>action</servlet-name> <servlet-class> servlet. Estructuras 2.dtd"> http://struts. Librerías de Librerí Etiquetas 4.dtd"> <struts-config> struts.do</url.2//EN" Foundation//DTD Struts Configuration 1.dtd"> http://struts. Internacionalización Internacionalizació 5.struts. abril de 2007 Grupo de Ingeniería del Software 3 .2 Proyecto J2EE 2.1 struts-config.name> <servlet-name>action</servlet-name> <url-pattern>*.name> action</servlet.action.class> <servlet-class> org.ActionServlet </servlet-class> </servlet-class> </servlet-class> <init-param> init.org/ dtds/ struts.1 Struts y MVC2 2. Elementos de Struts 3.name> config</param. Introducción Introducció 2.2 bean y nested 5.apache.4 ActionForms 4.xml <servlet> servlet> <servlet> <servlet-name>action</servlet-name> servlet.xml /WEB.3Integrar struts 3.1 html y logic 4.apache.INF/struts/WEB-INF/struts-config.apache.xml struts3.2 bean y nested 5.xml struts3.ActionServlet org.1 Struts y MVC2 2.2 Actions 3.action.apache.pattern> <url-pattern>*.2//EN" Foundation//DTD ""http://struts. Internacionalización Internacionalizació 5.do</url-pattern> url.0" encoding="UTF-8"?> <?xml version="1.xml </param-value> </param-value> </param-value> </init-param> </init-param> </init-param> </servlet> </servlet> </servlet> <servlet-mapping> servlet.apache.0" encoding="UTF<?xml version="1.org/dtds/struts-config_1_2.3 ActionMappings 3. Librerías de Librerí Etiquetas 4.config> <struts-config> <data-sources /> <data<data-sources /> <form-beans /> form<form-beans /> <global-exceptions /> <global<global-exceptions /> <global-forwards /> <global<global-forwards /> <action-mappings /> action<action-mappings /> </struts-config> </struts-config> </struts-config> Sevilla.xml StrutsEscuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos 1. Estructuras 2. Elementos de Struts 3.1 struts-config. Introducción Introducció 2.[Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Struts Básico • Integrar Struts Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos – Añadir a Web.3Integrar struts 3.1 i18n en JSP • 2 i18n en Actions • Bibliografía Bibliografí <?xml version="1.1 i18n en JSP • 2 i18n en Actions • Bibliografía Bibliografí Sevilla.2 Actions 3.pattern>*.

abril de 2007 Grupo de Ingeniería del Software 4 .usuario” roles=“admin. Elementos de Struts 3.xml struts3.4 ActionForms 4.1 i18n en JSP • 2 i18n en Actions • Bibliografía Bibliografí public class LoginAction extends Action { public class LoginAction extends Action { public ActionForward execute( public ActionForward execute( execute( ActionMapping mapping. <action forward="/login. Librerías de Librerí Etiquetas 4.struts.LoginAction"> type="com. ActionMapping mapping.[Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Struts Básico • Actions Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos – Extender la clase Action – Implementar el método execute() 1.jsp" </action> </action> </action> return mapping.jsp" /> name="correcto" path="/Bien. HttpServletRequest request.2 Proyecto J2EE 2.usuario” type="com. abril de 2007 Grupo de Ingeniería del Software [Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Struts Básico • ActionMappings Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos 1.3 ActionMappings 3.LoginAction"> <forward name="incorrecto" path="/Mal.2 Actions 3.jsp“ input="/login. Librerías de Librerí Etiquetas 4.jsp“ input="/login.jsp“ validate=“true” validate= true” validate=“true” name="loginForm" name="loginForm" name="loginForm" path="/login" path="/login" path="/login" scope="request“ scope="request“ scope="request“ roles=“admin.2 Actions 3.1 struts-config. HttpServletRequest request. mapping.struts.ejemplo. return mapping. ActionForm form.jsp" /> <forward name="correcto" path="/Bien. mapping.3Integrar struts 3.action. Internacionalización Internacionalizació 5.3Integrar struts 3.2 Proyecto J2EE 2. ActionForm form.struts.4 ActionForms 4.jsp" /> name="incorrecto" path="/Mal.1 Struts y MVC2 2.3 ActionMappings 3. request. HttpServletResponse response) HttpServletResponse response) { { // lógica // ló lógica } } } } Sevilla.LoginAction"> type="com.findForward(“ correcto").jsp" Sevilla. Internacionalización Internacionalizació 5. Estructuras 2.1 html y logic 4.findForward(“correcto").1 struts-config. form.1 i18n en JSP • 2 i18n en Actions • Bibliografía Bibliografí <action <action input="/login.1 html y logic 4.xml struts3.findForward(“correcto").2 bean y nested 5.jsp" /> <forward name="incorrecto" path="/Mal.ejemplo.action.jsp" <forward name="correcto" path="/Bien.jsp" path="/login" /> forward="/login. Elementos de Struts 3. Estructuras 2.action. Introducción Introducció 2. Introducción Introducció 2.2 bean y nested 5.jsp" path="/login" /> <action forward="/login.1 Struts y MVC2 2.usuario” roles=“ admin.ejemplo.

Elementos de Struts 3.do"> password ::<html:text property="password"/> password <html:text property="password"/> <html:text property="password"/> nombre :: <html:text property="user"/> nombre <html:text property="user"/> property="user"/> <html:submit/><html:cancel/> html:submit/><html:cancel/> <html:submit/><html:cancel/> </html:form> </html:form> </html:form> <html:link action="/login.xml struts3.2 Actions 3.ejemplo.} public void setUser(String user) {this.ejemplo.2 Proyecto J2EE 2.do">Login</html:link> <html:link action="/login.2 Proyecto J2EE 2.LoginForm" public class LoginForm extends ActionForm { public class LoginForm extends ActionForm { private String passw. user. public ActionErrors validate ((ActionMappingmapping.} public void setPassw(String pass) {this.user user.} getUser() {return user.} {return passw. Introducción Introducció 2. Librerías de Librerí Etiquetas 4.do">Login</html:link> action="/login. Librerías de Librerí Etiquetas 4.xml struts3. ActionMapping mapping.1 Struts y MVC2 2.passw = pass. private String user.4 ActionForms 4.} public void setPassw(String pass) {this. abril de 2007 Grupo de Ingeniería del Software 5 .1 Struts y MVC2 2. private String user.user = user. public void reset ((ActionMapping mapping.} } } 1. public ActionErrors validate ActionMapping mapping.struts.form.} user) {this.} public String getPassw () {return passw.passw public String getUser() {return user.do"> action="/login.3 ActionMappings 3.1 struts-config.1 html y logic 4.4 ActionForms 4.struts. Internacionalización Internacionalizació 5. Internacionalización Internacionalizació 5.form. HttpServletRequest request) {return null.2 bean y nested 5.3Integrar struts 3.user = user. Elementos de Struts 3.3Integrar struts 3.3 ActionMappings 3.} public void setUser(String user) {this. passw.2 bean y nested 5.ejemplo. HttpServletRequest request) {} HttpServletRequest request) {} request) public String getPassw () {return passw. mapping.} public String getUser() {return user. Estructuras 2. private String passw.passw = pass.LoginForm" /> type="com.} HttpServletRequest request) {return null.1 html y logic 4.} request) {return null.LoginForm" /> type="com. Introducción Introducció 2.form.1 struts-config.} {this.1 i18n en JSP • 2 i18n en Actions • Bibliografía Bibliografí Sevilla.[Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Struts Básico • ActionForms Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos <form-bean name="loginForm“ form<form-bean name="loginForm“ name="loginForm“ type="com.struts.do">Login</html:link> – Logic: <logic:present scope=“session” name=“cesta”> <logic:present scope= session” name= cesta” scope=“session” name=“cesta”> <!— Pintar cesta de la compra --> <!— Pintar cesta de la compra --> <!— --> </logic:present> </logic:present> </logic:present> <logic iterate id=“lin” name=“cesta” property=“lineas” <logic iterate id= lin” name= cesta” property= lineas” id=“lin” name=“cesta” property=“lineas” indexId=“linId” scope=“session”> indexId= linId” scope= session” indexId=“linId” scope=“session”> <!— Iterar --> <!— Iterar --> <!— --> </logic:iterate> </logic:iterate> </logic:iterate> 1.} public void reset (ActionMapping mapping.1 i18n en JSP • 2 i18n en Actions • Bibliografía Bibliografí Sevilla. Estructuras 2.2 Actions 3.do"> <html:form action="/login. abril de 2007 Grupo de Ingeniería del Software [Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Struts Básico • Librerías de Etiquetas JSP de Struts (I) Librerí Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos – Html: <html:form action="/login.

3Integrar struts 3.2 Proyecto J2EE 2.1 struts-config.1 i18n en JSP • 2 i18n en Actions • Bibliografía Bibliografí – I18n • MVC2 -> textos en interfaz y mensajes generados en controlador Sevilla.3 ActionMappings 3.xml struts3.3Integrar struts 3. Internacionalización Internacionalizació 5. Introducción Introducció 2.1 i18n en JSP • 2 i18n en Actions • Bibliografía Bibliografí – Nested: Para anidaciones no permitidas en JSP Sevilla.4 ActionForms 4. Internacionalización Internacionalizació 5. abril de 2007 Grupo de Ingeniería del Software [Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Struts Básico • Internacionalización Internacionalizació Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos – Diferentes idiomas – No duplicación páginas – Mantenimiento – Resource Bundle • Fichero properties • Locale sufijo idioma_pais p.1 html y logic 4.resources 1.1 Struts y MVC2 2. Librerías de Librerí Etiquetas 4.1 Struts y MVC2 2.e.4 ActionForms 4.articulo = No nos queda ese articulo • Colocar en cualquier paquete com. Estructuras 2.2 Actions 3.nohay. abril de 2007 Grupo de Ingeniería del Software 6 .1 struts-config.2 bean y nested 5. Librerías de Librerí Etiquetas 4.2 Proyecto J2EE 2.3 ActionMappings 3.xml struts3.ejemplo. Elementos de Struts 3. Elementos de Struts 3.[Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Struts Básico • Librerías de Etiquetas JSP de Struts (II) Librerí Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos – Bean <bean:define id=“prod” name=“lin” property=“producto”> <bean:define id= prod” name= lin” property= producto” id=“prod” name=“lin” property=“producto”> <bean:write name=“prod” property=“titulo”/> <bean:write name= prod” property= titulo” name=“prod” property=“titulo”/> 1.2 bean y nested 5. mensajes_es_ES • Dentro líneas con asignaciones • error.1 html y logic 4. Introducción Introducció 2. Estructuras 2.2 Actions 3.

nohay.new ActionMessage(“error.1 struts-config. return errors.nohay.articulo” bundle= gui” key=“error.arti” ActionMessage(“error.add(“error”.[Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Struts Básico • i18n en JSP Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos – Alias <message-resources parameter=“com. Introducción Introducció 2.mensajes” message<message-resources parameter= com. Introducción Introducció 2.mensajes” key=“gui”> key= gui” key=“gui”> – Algunos usos <html:option key=“error.user”)).add( user” errors.articulo” <html:img pageKey= error. Estructuras 2.nohay.nohay. Librerías de Librerí Etiquetas 4.articulo” pageKey=“error. // comparaciones // comparaciones errors.articulo” tittleKey=“error. ActionErrors errors = new ActionErrors().add(“user”.add( error” errors. Elementos de Struts 3.3 ActionMappings 3.errors).new ActionMessage( error.3 ActionMappings 3.articulo” bundle= gui” altKey=“error.articulo” bundle=“gui”/> 1.falta. saveErrors(request.arti”)). errors. Internacionalización Internacionalizació 5.falta. ActionMessages errors = new ActionMessage().add(“error”.nohay. abril de 2007 Grupo de Ingeniería del Software 7 . Internacionalización Internacionalizació 5. abril de 2007 Grupo de Ingeniería del Software [Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Struts Básico • i18n en Action’s Action’ Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos 1.add(“user”.xml struts3.articulo” bundle=“gui”/> <html:option key= error.articulo” tittleKey= error.nohay.1 Struts y MVC2 2.falta.articulo” altKey=“error.articulo” srcKey=“error.new ActionMessage( error.xml struts3.ejemplo.articulo” srcKey= error.nohay.4 ActionForms 4.ejemplo.nohay.new ActionMessage(“error. errors.1 struts-config.nohay.3Integrar struts 3.articulo” bundle=“gui”/> altKey= error. errors.nohay. } } saveErrors(request.user”)).nohay.1 html y logic 4.user” ActionMessage(“error.nohay. Estructuras 2.nohay.errors). Librerías de Librerí Etiquetas 4.nohay.nohay. } } • <html:errors/> html:errors/> Sevilla.mensajes” parameter=“com.arti”)).2 bean y nested 5.articulo” tittleKey=“error.3Integrar struts 3.2 bean y nested 5.nohay.ejemplo.nohay. ActionMessage(). Elementos de Struts 3.2 Actions 3.articulo” bundle= gui” key=“error.nohay.articulo” bundle=“gui”/> <bean:message key=“error. saveErrors(request.nohay.4 ActionForms 4.nohay.articulo” srcKey=“error.1 html y logic 4. return errors.1 i18n en JSP • 2 i18n en Actions • Bibliografía Bibliografí Sevilla. • Y en ActionForm’s ActionForm’ public ActionErrors validate(…) public ActionErrors validate( validate(…) { { ActionErrors errors = new ActionErrors().articulo” bundle=“gui”/> <bean:message key= error.1 i18n en JSP • 2 i18n en Actions • Bibliografía Bibliografí ActionMessages errors = new ActionMessage().errors).articulo” bundle=“gui”/> <html:img pageKey=“error. ActionErrors().1 Struts y MVC2 2.nohay.2 Proyecto J2EE 2.2 Proyecto J2EE 2.2 Actions 3. Try{ Try{ Try{ //invocar logica de negocio //invocar logica de negocio }catch(Exception ex){ }catch(Exception ex){ errors.

xml struts3.1 struts-config.1 html y logic 4.2 Actions 3.3Integrar struts 3. Elementos de Struts 3.2 bean y nested 5. abril de 2007 Grupo de Ingeniería del Software 8 .3 ActionMappings 3. Internacionalización Internacionalizació 5.1 i18n en JSP • 2 i18n en Actions • Bibliografía Bibliografí – Struts in Action Manning – Struts Recipes Manning Sevilla.2 Proyecto J2EE 2.[Ángel US V7] Diseño: Amador Durán Toro (2003-2006) Struts Básico • Bibliografía Bibliografí Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos – Programming Jakarta Struts O’reilly 1. Estructuras 2.1 Struts y MVC2 2.4 ActionForms 4. Introducción Introducció 2. Librerías de Librerí Etiquetas 4.

Sign up to vote on this title
UsefulNot useful