我有一个系统,我想迁移到VaAdin8。我想请求关于如何验证基于正则表达式的TextField的帮助。我有适用于Vaadin 7但不适用于Vaadin 8的代码,这可以进一步解释我的问题。下面这样的代码样例将非常受欢迎。
TextField txtFirstname = new TextField();
txtFirstname.setInputPrompt("Enter the firstname e.g. John or Jane");
txtFirstname.addValidator(new RegexpValidator("^[a-zA-Z _\\-'\" ]{3,25}$", "Invalid FirstName"));
txtFirstname.addBlurListener(new BlurListener() {
@Override
public void blur(BlurEvent event) {
//txtFirstname.validate();
if(txtFirstname.isValid()==false)
{
txtFirstname.setValidationVisible(true);
//txtFirstname.focus();
}
else if(txtFirstname.isValid()==true)
{
txtFirstname.setValidationVisible(false);
}
}
}); 发布于 2017-08-25 17:21:34
我在Vaadin上做了一些工作,但我没有看过'Validator‘,所以我会提出一个更简单的方法:
TextField txtFirstname = new TextField();
txtFirstname.setInputPrompt("Enter the firstname e.g. John or Jane");
String pattern = "^[a-zA-Z _\\-'\" ]{3,25}$";
txtFirstname.addBlurListener(new BlurListener() {
@Override
public void blur(BlurEvent event) {
if(!txtFirstname.getValue().match(pattern)){ //<- basic string check
txtFirstname.setValidationVisible(true);
//txtFirstname.focus();
}
else if(txtFirstname.isValid()==true){
txtFirstname.setValidationVisible(false);
}
}
}); 并且使用!booleanValue而不是booleanValue==false
https://stackoverflow.com/questions/45876693
复制相似问题