java - 在 JSF 中将 inputText 转换为 byte[]

标签 java jsf glassfish byte

我正在编写一个 Web 应用程序,它有一个 JSF 页面,后面有一个 bean。我遇到了麻烦,我认为这是因为 bean 需要一个特定字段的字节数组,并且它是由一个字符串提供的。

据我了解,JSF 提供了一些功能来自动将您在 inputText 字段中输入的任何内容转换为所需的数据类型,但我认为当您需要 byte[] 时它不会这样做......

这只是为 JSF 编写一个客户转换器的问题吗?比如这样的事情:

public class StringToByteArray implements Converter {

...

public byte[] getAsObject(FacesContext context, UIComponent component, String value) {
    if (StringUtils.isEmpty(value)){ return null;}

    byte[] valueAsBytes = new byte[];

    valueAsBytes = value.getBytes();

    return valueAsBytes; } } 

最佳答案

答案是肯定的。只需编写一个自定义转换器即可。不要因为认为“简单转换的代码太多”而气馁。下面是一个转换器示例,用于将自定义对象转换为字符串并返回。这种转换器通常用于选择菜单:

@FacesConverter( value="merkmalConverter" )
public class MerkmalMenuConverter implements Converter {

    public String getAsString(FacesContext context, UIComponent component, Object value) {
        if (value != null) {
            Merkmal m = (Merkmal) value;
            return m.getBezeichnung();
        }
        return null; // Value is null.
    }

    @SuppressWarnings("unchecked")
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        if (value != null) {
            MerkmalJpaController mJpaC = new MerkmalJpaController();
            List<Merkmal> mList = mJpaC.findMerkmalEntities();
            for (Merkmal m : mList) {
                if (m.getBezeichnung().equals(value)) {
                    return m;
                }
            }
        }
        return null; // Value is null or doesn't have any match.
    }
}

在 jsf 文件中使用转换器,如下所示,作为要转换的输入字段的子元素:

<f:converter converterId="merkmalConverter" />

关于java - 在 JSF 中将 inputText 转换为 byte[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5224633/

相关文章:

java - Google App Maker - 单击按钮从文本框读取并汇总到标签

java - JBoss Seam : In ScopeType. PAGE 我得到 : java. lang.IllegalStateException:没有 Activity 的对话上下文

web-services - "Web Services"GlassFish Server 开源版 3.0.1 中缺少节点

java - 用于实例化初始化集合的紧凑语法

java - 使用 Spring 的开源项目 <中型>

java - 如何配置 url 映射以获取对 PrettyFaces/Rewrite 中的一个 jsf 页面的所有 * url 请求

jsf - 如何保留primefaces数据表的排序顺序?

java - 当不允许创建线程时,如何将 Glassfish 客户端连接到 Glassfish JMS 服务器?

jakarta-ee - 无法远程调用方法

java - 解码图像 - BLACKBERRY/Java