本文翻译出处 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服务。