我有一个关于JSF的问题。如果我想在JSF中编写自己的转换器,那么有必要使用两种抽象方法来实现接口转换器
getAsObject(FacesContext context, UIComponent component, String value)
和
public String getAsString(FacesContext context, UIComponent component, Object value)
我还不清楚,在哪个JSF生命周期阶段,哪些方法会被自动调用?
如果响应从Web服务器到客户端,那么将调用方法"getAsObject"(请求将其发送到Web服务器),并调用方法"getAsString"(getAsString),这对吗?
格里茨Marwief
Yes getAsObject用于在请求到来时将输入字符串转换为您选择的对象类型。然后,当呈现响应并发送时,getAsString用于将对象转换为字符串以进行表示。
我希望我的问题答对了。
客户端发送请求(文本形式的数据,例如金额=15)。您需要转换字符串到数字:
Object getAsObject(FacesContext context, UIComponent component, String value) {
return Integer.valueOf(value);
}
然后,它可以验证该值(范围检查或其他定义的值),并将其应用于适当的bean对象。当代码以某种方式更改该值时,您希望将对象表示为客户端的字符串:
public String getAsString(FacesContext context, UIComponent component, Object value) {
return value.toString();
}