Professional Documents
Culture Documents
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"
a*
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<ado*-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
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
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"
Ca)#ie el idio)a de los textos en dic(os arc(ivos" #lo'al<en*2ro2erties% textos en idio)a ingl<s"
d*
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"
lo#in*-s2% A;ada la eti*ueta (ead para cargar css del te)a 1x(t)l2"
"
'*
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
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*
ClienteAction=re#istrar=.alidation*x$l
14