`

JSF Converter-定义通用的 状态 转换器

阅读更多

 

创建StatusConverter类:

 

/**
 * Date: 14-6-29
 * @author: Zero
 */
@FacesConverter(value = "StatusConverter", forClass = String.class)
public class StatusConverter  implements javax.faces.convert.Converter{

    //其他方法....
    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        if (context == null || component == null) {
            throw new NullPointerException();
        }

        // 如果value为空则返回空字符串
        if (value == null) {
            return "";
        }
        //在xhtml中属性名以"status-"作为前缀
        for (Map.Entry<String, Object> entry : component.getAttributes().entrySet()) {
            String status = entry.getKey().toString().replace("status-", "");
            if (status.equals(value.toString())) {
                return entry.getValue().toString();
            }
        }
        return value.toString();
    }
}

 

使用:

  <h:outputText value="#{channel.status}">
       <f:converter converterId="StatusConverter"/>
       <f:attribute name="status-1" value="开"/>
       <f:attribute name="status-0" value="关"/>
  </h:outputText>

 

注意:component.getAttributes() 是从UIComponent中获取的,所以设置属性时是放在<h:outputText> </h:outputText>里面,而不是<f:converter> 里面

 

 

分享到:
评论

相关推荐

    JSF框架中使用的设计模式介绍

    在JSF中,验证和转换策略可以通过设置不同的Validator和Converter实现,使得在运行时可以灵活地更改处理数据的方式。 8. **Template Method模式**: Template Method模式定义了一个操作中的算法骨架,而将一些步骤...

    学习技术 jsf必备 ————JSF标签.pdf

    - **converter**: 设置转换器。 - **validator**: 设置验证器。 - **required**: 指定输入组件是否为必填项。 - **immediate**: 控制事件是否立即处理。 此外,还可以为某些组件设置HTML属性,如`size`、`alt`、`...

    《JSF标签》简体中文版.

    - **converter**:定义数据转换规则。 - **validator**:定义验证规则。 - **required**:标记字段是否必须填写。 - **immediate**:控制事件是否立即处理。 此外,JSF标签还支持HTML4.01的属性,如`size`、`alt`、...

    JSF标签知识点.pdf

    JSF标签拥有通用属性,如`id`用于唯一标识,`binding`绑定到UIComponent对象,`rendered`控制组件是否渲染,`styleClass`用于CSS样式,`value`设置或绑定值,`valueChangeListener`处理值改变事件,`converter`定义...

    《JSF标签》简体中文版

    - **converter**:指定数据转换器。 - **validator**:定义验证规则。 - **required**:指示输入字段是否为必填项。 - **immediate**:控制事件处理的时机。 #### 1.2 输出类标签 输出类标签用于展示数据,常见的...

    JSF标准标签

    - **`converter`**: 定义如何将用户输入转换为适当的对象类型。 - **`validator`**: 验证用户输入。 - **`required`**: 标识字段是否为必填项。 - **`immediate`**: 是否立即处理事件,而不是等待整个表单提交。 ...

    《JSF标签》简体中文版(一定要会的).pdf

    - `converter`:设定转换器,用于数据类型的转换。 - `validator`:设定验证器,确保输入数据的有效性。 - `required`:是否验证必填项。 - `immediate`:是否立即执行事件。 此外,开发者还可以在特定组件上设置...

    TongWeb6.0应用开发手册.pdf

    - 它们主要用于实现通用的功能,如编码转换、日志记录、权限验证等。 - **安全角色映射**: - 安全角色映射是指将应用中的逻辑角色映射到实际的用户和组,以便于进行细粒度的安全控制。 - 通过这种方式,管理员...

Global site tag (gtag.js) - Google Analytics