JSF Gossip: 自订转换器 - 总结版

 

除了使用标准的转换器之外,您还可以自行定制您的转换器,您可以实作 javax.faces.convert.Converter 介面,这个介面有两个要实作的方法:

 public Object getAsObject(FacesContext context,
                           UIComponent component,
                           String str);
 public String getAsString(FacesContext context,
                           UIComponent component,
                           Object obj);

 
简单的说,第一个方法会接收从客户端经由 HTTP 传来的字串资料,您在第一个方法中将之转换为您的自订物件,这个自订物件将会自动设定给您指定的 Bean 物件;第二个方法就是将从您的 Bean 物件得到的物件转换为字串,如此才能藉由 HTTP 传回给客户端。

1. User.java 目标转换类。

 

2. GuestBean 这个 Bean 上的属性直接传回或接受 User 型态的参数,我们来实作一个简单的转换器,为 HTTP 字串与 User

件进行转换。

 

3. 实作完成这个转换器,我们要告诉 JSF 这件事,这是在 faces-config.xml 中完成注册。

<converter>
    <converter-id>onlyfun.caterpillar.User</converter-id>
    <converter-class>
        onlyfun.caterpillar.UserConverter
    </converter-class>
</converter>

 

4.UserConverter.java 转换器

public Object getAsObject(FacesContext context, UIComponent component, String str) {

  //Page -> Server

}

 

public String getAsString(FacesContext context, UIComponent component, Object obj)
throws ConverterException {

  //Server -> Page

}

 

5. 注册转换器时(在页面),需提供转换器识别( Converter ID )与转换器类别,接下来要在 JSF 页面中使用转换器的话,就是指定所要使用的转换器识别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值