2》《开始Struts2》第三章struts2的类型转换
fkriss
第2页
1182011
序
所有的MVC框架,都是属于表现层的解决方案,都需要负责收集用户请求参数,并将请求参数传给应用的控制器组件。此时问题出现了,所有的请求参数都是,也只能是字符串数据类型,但Java是强类型的语言,因此MVC框架必须将这些字符串请求参数转换成相应的数据类型这个工作是所有的MVC框架都应该提供的功能。Struts2提供了非常强大的类型转换机制,Struts2的类型转换是基于OGNL表达式的,只要我们把HTML输入项表单元素和其他GETPOST的参数命名为合法的OGNL表达式,就可以充分利用Struts2的类型转换机制。除此之外,Sti
ts2提供了很好的扩展性,开发者可以非常简单地开发出自己的类型转换器,完成字符串和自定义复合类型之间的转化例如,完成字符串到Perso
实例的转换,如果类型转换中出现未知异常,类型转换器开发者无需关心异常处理逻辑,Struts2的co
versio
Error拦截器会自动处理该异常,并且提示在页面上生成提示信息。总之,Struts2的类型转换器提供了非常强大的表现层数据处理机制,开发者可以利用Struts2的类型转换机制来完成任意的类型转换。
自动型转换器
在struts1x中只能简单的进行Stri
g和基本数据类型的转换,但Struts2支持多种类型的自动转换:
XWorkwillautomaticallyha
dlethemostcommo
typeco
versio
foryouThisi
cludessupportforco
verti
gtoa
dfromStri
gsforeachofthefollowi
g
Stri
gboolea
Boolea
charCharacteri
tI
tegerfloatFloatlo
gLo
gdoubleDoubledatesusestheSHORTformatfortheLocaleassociatedwiththecurre
trequestarraysassumi
gthei
dividualstri
gsca
becovertedtothei
dividualitemscollectio
sif
otobjecttypeca
bedetermi
editisassumedtobeaStri
ga
da
ewArrayListiscreated
Notethatwitharraysthetypeco
versio
willdefertothetypeofthearrayeleme
tsa
dtrytoco
verteachitemi
dividuallyAswitha
yothertypeco
versio
iftheco
versio
ca
tbeperformedthesta
dardtypeco
versio
errorreporti
gisusedtoi
dicateaproblemoccuredwhileprocessi
gthetypeco
versio
E
umeratio
sBigDecimala
dBigI
teger
例子:注册实例:
fkriss
第3页
1182011
i
dexjsp……bodyh2类型转换演示自动转换演示h2hrformactio