首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在前端格式化Spring CommandObject变量

在前端格式化Spring CommandObject变量
EN

Stack Overflow用户
提问于 2011-06-02 10:55:08
回答 2查看 286关注 0票数 0

如何格式化从前端的命令对象获取的值。

它是一个SSN值,来自没有任何"-" (连字符)的DB。我如何转换它?

示例:将123456789转换为123-45-6789。此外,在支持bean中,该字段是一个Int

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-02 17:53:17

创建一个自定义属性编辑器怎么样?

IntegerPropertyEditor如下所示:

代码语言:javascript
复制
package com.pnt.common.propertyeditor;

import java.beans.PropertyEditorSupport;
import com.pnt.util.number.NumUtils;

public class IntegerPropertyEditor extends PropertyEditorSupport {



//private static final Log logger = LogFactory.getLog(IntegerPropertyEditor.class);





public void setValue(Object value) {

    if (value==null) {
        super.setValue(null);
    } 

    else if (value instanceof Integer) {
        super.setValue(value);
    }

    else if (value instanceof String) {
        setValue(NumUtils.stringToInteger((String)value));
    }

    else {
        super.setValue(NumUtils.stringToInteger(value.toString()));
    }       
}


public void setAsText(String text) {
    setValue(NumUtils.stringToInteger(text.replaceAll(" ", "")));
}


public String getAsText() {
    Integer value = (Integer)getValue();
    if (value != null){ 
        String t = value.toString();
        int k = 1;
        for (int i = t.length() - 1; i >= 0; i--) {
            if (k % 3 == 0 && i != 0)
                t = t.substring(0, i) + " " + t.substring(i);
            k++;
        }
        return t;

    } 
    else 
        return "";
}
}

并且您必须在控制器的initBinder()方法中注册它:

代码语言:javascript
复制
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder ){
    try {
        binder.registerCustomEditor(Integer.class, "ssnField", new IntegerPropertyEditor());
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


}

现在,您所要做的就是调整PropertyEditor以匹配您的格式。

票数 0
EN

Stack Overflow用户

发布于 2011-06-02 14:29:39

使用fmt:substring怎么样?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6209916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档