`
hongyong
  • 浏览: 16124 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论
  • songshuang: 您好~诚挚邀请您加入ITeye HTML5群组,交流分享HTM ...
    Html5

Struts2 类型转换

    博客分类:
  • Java
阅读更多

        昨天看了Struts2的类型转换,大致的意思就是在前端JSP页面输入的资料,通过Struts2的作用。在对应的Action里面我们可以得到我们想要的资料类型。

      Struts2的类型转换是基于OGNL表达式的,之后要我们把HTML输入想明明为合法的OGNL表达式,就可以充分利用Struts2的类型转换机制了。Struts2的类型转换包含内建的类型转换和扩展的类型转换。

     内建的boolean和Boolean、char和Character、int和Interger、long和Long、float和Float、double和Double、Date、數組、結合。具体意思就是说。如果在前端Jsp的html或者Struts2的标签定义了name。并且在后端的Action里面有对应的get/set方法。如果后端get/set的属性你定义为上述的类型。则Struts2就会自动转换成你需要的类型。并且自动给你赋值到后端的属性。至于上述的数组的意思就是如果前端定义有两个输入框相同的name。则在后段可通过一个数组的形式接收前端对应两个输入框对于的值。当然数组里面值类型可自行定义。当然如果你在后端定义的类型为int。前端页面输入的是字母。提交后则Struts2则会通过验证拦截器,提示你输入的为invalid。

     自定义类型转换器的意思是,我们可以通过自己撰写类型转换器,将页面的内容转换为我们需要的类型。可以转换为一个JavaBean,也可以转换为其它任何你可想到的类型。比如,页面有一个邮件地址输入框。用户可输入多个邮件地址,不同邮件地址用逗号隔开。这个我们就可自定义类型转换器。将页面输入的邮件地址转换为一个邮件的数组、Vector、hashmap或者其它。类型转换器必须实现TypeConverter这个接口。然后通过复写convertValue方法来完成类型转换。也就是说这个方法返回的结果就是我们自己撰写代码转换后的结果。当然就包含两个部分,一个是页面值向Action里面类型的转换,另一个就是Action里面的值向页面显示值转换的代码撰写。Struts2为了方面我们自定义类型转换器,特提供了实现TypeConverter的子类,供我们继承来更方便的撰写。他们是DefaultTypeConvert和StrutsTypeConvert。StrutsTypeConvert将两种不同方向转换放到了不同的方法里。看起来就更直观和简单了。

     自定义类型转换器可以作用于一个Action,也可作用于全局的Action里面名字相同的属性,具体作用方式就是用户在撰写完自定义类型转换器后,通过新增ActionName-Conversion.properties(作用于一个Actiong,里面设定为propertName=类型转换器类)和xwork-Conversion.properties(作用于全局,如设定Action类名(包含包名)=类型转换器(包含包名))。

     以上为学习类型转换器的一点心得。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics