gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:05:32 24 4
gpt4 key购买 nike

我正在编写一个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com