【问题标题】:How can I .trim() the display field of a Vaadin combobox?如何 .trim() Vaadin 组合框的显示字段?
【发布时间】:2014-06-05 13:07:03
【问题描述】:

Vaadin 7.x 中,我有一个使用JPAContainerComboBox 设置。设置如下:

mycombo.setItemCaptionPropertyId("name");

效果很好。但是,映射到该组合的实体将 CHAR(50) 列用于 name,并且无法更改。一切正常,但是当我复制/粘贴时看到所有这些空格很烦人,例如,从组合到其他文本输入。

当然,我.trim() 以编程方式传入组合值,但我希望始终自动修剪显示。

我会通过创建自定义转换器来做到这一点吗?

谢谢

【问题讨论】:

  • 你能发一些截图吗?这将更好地帮助理解
  • 暂时没有,但如果真的需要,我可以稍后。但基本上,如果组合的显示值应该是"Apple",但在数据库中,它返回为"Apple "。我希望它显示"Apple",即使那不是从数据库加载的。

标签: java combobox vaadin trim vaadin7


【解决方案1】:

由于时间不够,我找不到比以下更好的东西了:

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);
}

}

问题是,在测试它时,我选择它后组合框中的值消失了。如果您能找到解决方案,那就太好了,但这是我暂时可以找到的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    相关资源
    最近更新 更多