将inputText转换为JSF中的字节[]
问题描述:
我正在编写一个Web应用程序,它具有一个JSF页面,并在其后面有一个bean。我有麻烦,我认为这是因为该bean期待一个字段数组为一个特定的领域,它提供了一个字符串。根据我的理解,JSF提供了一些功能,可以自动将您在inputText字段中输入的任何内容转换为所需的数据类型,但是当您想要一个字节时,我认为它不会这样做[] ...将inputText转换为JSF中的字节[]
这仅仅是为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" />
这诚实是没有意义的。请显示视图的相关部分('')和bean(绑定到输入值的属性/ getter/setter)。还详细阐述了它应该保持什么样的信息。 –
BalusC
2011-03-07 20:16:07