本文翻译出处 http://tapestry.apache.org/tapestry5/tapestry-core/guide/coercion.html
本人翻译目的是用来学习Tapestry5的,共享出来希望大家批评指正。计划持续翻译。
chinajavawolf
参数类型强制转换
Tapestry自动处理参数的类型强制转换。
类型强制转换发生在当一个值传入到参数但不符合参类型时。
例如,思考一下Count组件:
- public class Count
- {
- @Parameter
- private int _start = 1;
- @Parameter(required = true)
- private int _end;
- @Parameter
- private int _value;
- . . .
不过,这个组件可能被这样使用。
Merry Christmas: <t:count end="3">Ho! </t:count>
无修饰的整数被认为是一个绑定了long前缀的数值。所以这是一个long型的值3
Tapestry将自动强制转换绑定值,long转换成参数的int类型。这是个损耗性的强制转换(如果long表示的是一个超过int存储类型的大数字)
TypeCoercer 服务
TypeCoercer服务为类型的强制转换服务。这个服务是tapestry-ioc模块的一部分,文档在此。
这个服务是可以彻底扩展的,允许你很容易的添加新的类型及强制转换。TapestryModule提供了一个新的额外的强制转换给TypeCoercer服务。