Java 如何.trim()显示Vaadin组合框的显示字段?
在Vaadin7.x中,我有一个使用JPA容器的组合框设置。它的设置如下:Java 如何.trim()显示Vaadin组合框的显示字段?,java,combobox,vaadin,trim,vaadin7,Java,Combobox,Vaadin,Trim,Vaadin7,在Vaadin7.x中,我有一个使用JPA容器的组合框设置。它的设置如下: mycombo.setItemCaptionPropertyId("name"); 效果很好。但是,映射到该组合的实体使用CHAR50列作为名称,不能更改。一切都很好,但当我复制/粘贴(例如,从组合框到其他文本输入)时,看到所有这些空格是很烦人的 当然,当我以编程方式传入组合值时,我会修剪它,但我希望总是自动修剪显示 我会通过创建自定义转换器来实现这一点吗 谢谢由于时间不够,我找不到比下面更好的了: public cl
mycombo.setItemCaptionPropertyId("name");
效果很好。但是,映射到该组合的实体使用CHAR50列作为名称,不能更改。一切都很好,但当我复制/粘贴(例如,从组合框到其他文本输入)时,看到所有这些空格是很烦人的
当然,当我以编程方式传入组合值时,我会修剪它,但我希望总是自动修剪显示
我会通过创建自定义转换器来实现这一点吗
谢谢由于时间不够,我找不到比下面更好的了:
public class MyVaadinUI extends UI {
@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = MyVaadinUI.class, widgetset = "com.gabrielruiu.vaadin.AppWidgetSet")
public static class Servlet extends VaadinServlet {
}
@Override
protected void init(VaadinRequest request) {
final VerticalLayout layout = new VerticalLayout();
layout.setMargin(true);
setContent(layout);
ComboBox comboBox = new ComboBox("my combobox", Arrays.asList(" Killer croc ", " Joker", "Penguin "));
comboBox.setConverter(new Converter<Object, String>() {
@Override
public String convertToModel(Object value, Class<? extends String> targetType, Locale locale) throws ConversionException {
if (value != null) {
return value.toString();
}
return null;
}
@Override
public Object convertToPresentation(String value, Class<?> targetType, Locale locale) throws ConversionException {
if (value != null) {
return value.trim();
}
return null;
}
@Override
public Class<String> getModelType() {
return String.class;
}
@Override
public Class<Object> getPresentationType() {
return Object.class;
}
});
layout.addComponent(comboBox);
}
}
问题是,在测试它时,组合框中的值在我选择它后消失。如果你能找到一个解决方案,那就太好了,但这正是我目前能找到的。你能发布一些截图吗?这会更好地帮助理解,不是现在,但如果真的需要,我可以稍后再做。但基本上,如果组合的显示值应该是Apple,但在数据库中,它返回为Apple。我想让它显示苹果,即使这不是从数据库加载的。