代码之家  ›  专栏  ›  技术社区  ›  Matt W

是否可以将表单列表中的项目绑定/转换为SpringWebMVC应用程序中的特定类型?

  •  1
  • Matt W  · 技术社区  · 14 年前

    我正在用Spring3.0.3构建一个SpringMVC应用程序。我的表单的数据绑定工作正常,但其中一个表单字段是项目列表。假设我的外形物体是这样的:

    public class MyForm {
    
        private String name;
        private List<String> items;
    
        public String getName() {
            return name;
        }
        public void setName( String value ) {
            name = value;
        }
    
        public List<String> getItems() {
            return items;
        }
        public void setItems( List<String> value ) {
            items = value;
        }
    }
    

    假设表单是通过一个带有如下查询字符串的get来处理的:

    "/url?name=GroupName&items=Item-1&items=Item-2&items=Item-3"
    

    到目前为止,我的 MyForm 对象与字符串值列表绑定良好。我好奇的是,如果我要将项目列表类型更改为更具体的类型,例如:

    private List<MyListItem> items;
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   samitgaur    14 年前

    您可以通过实现自己的自定义来实现这一点 java.beans.PropertyEditor 对于 MyListItem 键入并注册。在这个自定义属性编辑器中,您将能够定义如何将字符串属性转换为 肌力描记法 通过实现 getAsText() setAsText() 方法。春天将使用你的习俗 PropertyEditor 将值绑定到窗体并能够转换实例 肌力描记法 post/get数据中字符串中的对象。

    this link 关于这方面的更多信息,请参阅Spring文档。见第5.4.2.1节

    还请注意,这种方法不仅适用于字符串和您自己的自定义类型之间的转换,而且在将窗体数据绑定到bean或从它们读取时,对基本Java类型的数据应用任何类型的修改也是有用的。例如,将HTML转义应用于字符串文本。