如何打印wicket验证器的结果

时间:2013-06-12 14:32:37

标签: java validation wicket

我想在wicket字段验证中重新格式化字段内容。

示例时间输入字段:

用户输入:1459 - >验证还可以 - >字段显示重新格式化值:14:59(中间有冒号)

感谢您的帮助,

ULI

public class PhoneValidatorWrapper implements IValidator<String>, Serializable
{

    public PhoneValidatorWrapper()
    {
    }

    @Override
    public void validate(IValidatable<String> validatable)
    {
        // validation goes here ...
            // writing pretty print back to model
            validatable.getModel().setObject("hello world");            
    }
}

但显示的值仍保持不变

2 个答案:

答案 0 :(得分:0)

我建议使用javascript重新格式化客户端的用户输入。以下jQuery插件可能可以完成这项工作:

http://digitalbush.com/projects/masked-input-plugin/#demo

另见: How to have users enter a formatted date in wicket?

答案 1 :(得分:0)

我终于找到了怎么做: 它通过结合验证器和行为来工作:

public class PhoneValidatorWrapper extends Behavior implements IValidator<String>, Serializable
{
    String prettyFormattedValue = null;

    public PhoneValidatorWrapper()
    {
    }

    @Override
    public void validate(IValidatable<String> validatable)
    {
        // validation goes here ...
        prettyFormattedValue = internalValidationResult.getPrettyValue();
    }

    @Override
    public void beforeRender(Component component)
    {
        super.beforeRender(component);
        IModel defaultModel = component.getDefaultModel();
        defaultModel.setObject(prettyFormattedValue);
    }
}