Está en la página 1de 14

CIBERTEC Direccin de Extensin Profesional DIVISIN DE ALTA TECNOLOG A !

DAT" Pro#ra$a % C&rso Java Master Application Developer % Construyendo la Capa de Presentacin de la Aplicacin

La'oratorio N( )*+
Validaciones e Internacionali,acin de Textos
O'-eti.o% Validaciones e Internacionalizacin de Textos

Casos de /so% Login, Logout y egistro de Cliente I* I01N !"!" A#ra el proyecto La#oratorio$%&" !"$" Cree ' arc(ivos con extensin properties"

ClienteAction*2ro2erties% Cree arc(ivo en el )is)o pa*uete de clase ClienteAction"

/s&arioAction*2ro2erties% Cree arc(ivo en el )is)o pa*uete de clase +suarioAction"

#lo'al*2ro2erties% Cree arc(ivo en la ra,z de -ource Pac.age"

a*

+so de recursos glo#ales #lo'al*2ro2erties% Agregue los siguientes textos"

str&ts*x$l% Por ser recurso glo#al, (ay *ue registrarlos"

lo#in*-s2% ee)place los textos est/ticos re0erenciando al recurso 1titulo"principal2 seg3n la l,nea siguiente resaltada4

2rinci2al*-s2% ee)place los textos est/ticos re0erenciando recurso seg3n las siguientes l,neas resaltadas4

res&ltado*-s2% ee)place los textos est/ticos re0erenciando recurso seg3n las siguientes l,neas resaltadas4

'* +so de recursos espec,0icos por Action 5o (ay necesidad de registrarlos en ning3n arc(ivo de con0iguracin" ClienteAction*2ro2erties% Agregue los siguientes textos4

+tilice los siguietes recursos4 n&e.o*-s2% uso de atri#uto .ey

res&ltado*-s2% &so de eti3&eta text en 4SP 5 de OGNL en rec&rsos con 678

Prue#e la Aplicacin /s&arioAction*2ro2erties% agregue los siguientes textos"

lo#in*-s2

/s&arioAction*-a.a

Pr&e'e la A2licacin 6#serve *ue la pri)era vez *ue se )uestra login"7sp no se visualizan los textos" 8sto de#ido a *ue los recursos est/n de0inidos para un Action espec,0ico, y login"7sp se carga co)o 9elco)e:0ile sin pasar por +suarioAction" +na estrategia ser,a de0inir una p/gina adicional *ue rediriga a login"7sp" Por e7e)plo4 index*-s2% cree p/gina y a;adirle la eti*ueta action

Str&ts*x$l% a;adir un ActionMapping *ue redireccione a +suarioAction

&s&arioaction*-a.a% )<todo retorna resultado de tipo redirect

9e'*x$l% ca)#ie 9elco)e 0ile"

prue#e la Aplicacin

Nota Una alternativa sera definir recursos properties en otro scope, por ejemplo como global

c* c* A:ada so2orte de idio$a In#l;s Cree una copia de cada arc(ivo properties en la )is)a ruta donde se encuentren"

glo#al%en"properties +suarioAction%en"properties ClienteAction%en"properties

Ca)#ie el idio)a de los textos en dic(os arc(ivos" #lo'al<en*2ro2erties% textos en idio)a ingl<s"

d*

Ca$'ie el idio$a a de$anda de &s&ario

lo#in*-s2% a;ada un enlace por cada idio)a *ue env,e par/)etro re3&est<locale cuyo valor sea igual al cdigo del idio)a" <s:url var="ingles" includeParams="all" value=""> <s:param name="request_locale">en</s:param> </s:url> <s:url var="espanol" includeParams="all" value=""> <s:param name="request_locale">es</s:param> </s:url> <s:a href="%{ingles}"> ngles</s:a> <s:a href="%{espanol}">!spa"ol</s:a>

II*

Validaciones
a* Validacin Progra)/tica4 Caso Login /s&arioAction*-a.a% Codi0i*ue las validaciones de ca)pos"

str&ts*x$l% A;ada result con na)e 1input2"

lo#in*-s2% A;ada la eti*ueta (ead para cargar css del te)a 1x(t)l2"

"

Nota: #l m$todo validate se ejecutar% cada ve& 'ue se invo'ue el (ction

'*

Validacin Declarati.a 4 Caso egistro de Cliente ClienteAction=.alidation*x$l% Cree arc(ivo =ML

1)

A;ada el siguiente cdigo #ase4 <#$%&'(P! validators P)*+ & ",//-pache .truts///0or1 2alidator 34546//!7" "http://struts4apache4org/dtds/89or1,validator, 345464dtd"> <validators>

</validators>

A;ada las siguientes validaciones4 5o)#re4 Ca)po e*uerido Apellido4 Ca)po e*uerido Ingresar )/xi)o $> caracteres 5u)ero Mvil4 -olo ingresar n3)eros Correo 8lectrnico4 ?or)ato incorrecto

11

str&ts*x$l% A;ada result con na)e 1input2 en los ActionMapping asociados a ClienteAction*

@La validacin con0igurada de#e aplicarse a todos los )<todos del ActionA 8n este caso la respuesta es 56, por tanto de#e)os especi0icar el no)#re del ActionMapping *ue re*uiere dic(a validacin" 8ntonces, se de#e realizar el siguiente ca)#io4 ClienteAction=.alidation*x$l% Ca)#ie el no)#re del arc(ivo a ClienteAction: registrarCliente:validation"x)l"

n&e.o*-s2% A;ada la eti*ueta (ead para cargar css del te)a 1x(t)l2"

12

n&e.o*-s2% Ca)#ie la lista din/)ica de operadores por un est/tica"

Por qu es necesario realizar este cambio? #l listado precargado en el ejemplo tiene *e'uest +cope, por lo cual solo est% en memoria ,asta 'ue se genera la vista de formulario -omo vamos a aplicar validaci.n, es probable 'ue se re'uiera generar nuevamente la misma vista 'ue muestre mensajes de error, para lo cual la lista /a no estar% disponible Qu alternativas se tienen? 1 (l generar el listado guardarlo en +ession +cope

Prue#e la Aplicacin"

13

c*

I!B5 de validaciones ClienteAction*2ro2erties

ClienteAction=re#istrar=.alidation*x$l

14