Spring / Grails定制属性编辑器,用于该类的特定属性

时间:2012-12-12 09:33:40

标签: spring grails path editor custom-properties

我想为域类的一个属性注册自定义属性编辑器,类是这样的

class Accessory{
  String name
  byte[] image
}

从客户端我发送图像的base64编码字符串,现在我希望这个字符串在绑定时自动转换为字节数组

我的属性编辑器类看起来像这样

import java.beans.PropertyEditorSupport
import org.apache.commons.codec.binary.Base64
class CustomAccessoryImageEditor extends PropertyEditorSupport{


    String getAsText() {
        value.toString()
    }

    void setAsText(String text) {
        String encodedImage = text?:""
        byte[] imageBytes = decodeImageToBytes(encodedImage)
        if(imageBytes.size()){
            value = imageBytes
        }


    }

    byte[] decodeImageToBytes(String encodedImage){
            return Base64.decodeBase64(encodedImage)
        }
}

我无法找到正确注册此编辑器的方法。

现在我的注册商课程中有类似的内容

registry.registerCustomEditor(byte, Accessory.image, new CustomAccessoryImageEditor())

但是当我运行这个时,我收到一条错误消息,指出在附件类

上找不到属性图像

我有两个问题,    1.是否可以为类的特定属性设置属性编辑器?    2.如果是,那么如何指定属性路径?

1 个答案:

答案 0 :(得分:2)

我认为没有可能为类的特定属性设置属性编辑器。但是如果image属性是Image类型(byte []的包装器),那么你可以为它注册一个编辑器,Spring会将编码的文本表示绑定到自定义包装器。