Tag: validation

Vaadin:如何使validation器只接受数字和一位小数

我正在尝试validation文本字段只有数字和一个小数,但小数值会导致validation器关闭: TextField tf = new TextField(); tf.addValidator(new RegexpValidator(“^\\d+$”, facilityId.getCaption() + “Only numbers and one decimal allowed.”)); 所以我得到了数字,但我如何告诉validation者“。” 没关系? 注意: Add-Ons不是一个选项。

如何检查输入是否符合Java中的任意数量的规则?

对于我的具体任务,我试图检查一个单词是否属于一组特定的词性。 这可以这样做: private boolean validate(String word) { if (isNoun(word) || isVerb(word) || isParticiple(word) || … ) return true; else return false; } 然而,正如你所看到的那样,它很快变得难看并难以扩展。 如果我是根据一组20条规则测试这些字符串,那么应该有一种更清晰,更具伸缩性的方法来实现这一点。 有关如何在缩放时使代码更清晰,更好的任何想法?

Bean Validation Groupinheritance不适用于Group Sequence Provider

我目前正致力于实现一个存储包含国内和国内地址的联系信息的应用程序,但也可以禁用地址。 我试图定义三个validation组:一个用于始终validation信息的超级组和两个用于不同地址状态的子类。 public interface ContactValidation {} public interface DomesticValidation extends ContactValidation {} public interface ForeignValidation extends ContactValidation {} 然后我在联系人类上定义了一个@GroupSequenceProvider。 public class ContactGroupSequenceProvider implements DefaultGroupSequenceProvider { @Override public List<Class> getValidationGroups(Contact contact) { List<Class> defaultGroupSequence = new ArrayList<Class>(); if(contact.getIsForeign()){ defaultGroupSequence.add(Contact.ForeignValidation.class); } else { defaultGroupSequence.add(Contact.DomesticValidation.class); } //TODO: Add Address Disabled Case defaultGroupSequence.add(Contact.class); //Get a GroupDefinitionException without this line […]

当域名具有连字符时,电子邮件地址validation将失败

我有一个电子邮件地址validation正则表达式我在代码中使用如下: public class Test { public static void main(String[] args) { try { String lineIwant = “myname@asl.ramco-group.com”; String emailreg = “^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$”; Boolean b = lineIwant.matches(emailreg); if (b == false) { System.out.println(“Address is Invalid”); }else if(b == true){ System.out.println(“Address is Valid”); } } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); } } } 在示例中的此特定电子邮件地址中,布尔值返回false,而这是有效的客户电子邮件地址。 我怀疑这是因为ramco和group之间的连字符,因为当我删除它时,Boolean返回true。 如何更改我的正则表达式以容纳这样的电子邮件地址?

@Valid没有触发 – Spring MVC 3.2

出于某种原因,它不起作用。 我搜索并尝试了在网上找到的所有解决方案。 没有骰子。 看起来我错过了什么。 我的光束: @Entity @Table(name=”employees”) public class Person { private Integer person_id; private String name; private String name2; private String email; private double phone; private String desc; @Id @Max(value=500) @Column (name=”id”) public Integer getPerson_id() { return person_id; } public void setPerson_id(Integer person_id) { this.person_id = person_id; } @NotNull @NotEmpty @Column (name=”fn”) public String […]

无法validation签名(cmssigneddata)bouncycastle

当我想validation我用BouncyCastle制作的签名时,我没有进入verifySignature方法的第二个while循环。 store.getMatches()返回一个空数组。 public static CMSSignedData sign() throws Exception { byte[] file = fileChooser(); store = KeyStore.getInstance(storeType); FileInputStream in = new FileInputStream(new File(storePathKey)); store.load(in, storePassword); in.close(); Key priv = store.getKey(“Subject”, storePassword); System.out.println(priv.toString() + “priv string”); X509Certificate cert = (X509Certificate) store.geCertificate(“Subject”); ContentSigner signer = new JcaContentSignerBuilder(sigAlgo).build((RSAPrivateKey) priv); CMSTypedData data = new CMSProcessableByteArray(file); CMSSignedDataGenerator gen = new CMSSignedDataGenerator(); […]

如果validation失败,如何在validation阶段阶段后检入?

我编写了一个PhaseListener ,我在其中检查Validations阶段。 有没有办法可以在监听器的afterPhase()方法中检查validation失败,validation阶段之后的下一阶段将是渲染响应阶段。

有没有办法从Bean Validation字段级ConstraintValidator中访问目标bean?

除了使用类级validation之外,还有一种方法可以从validation器类中访问字段级validation注释的父bean吗? 例如: public class CustomValidator implements ConstraintValidator { @Override public void initialize(final CustomValidation constraintAnnotation) { } @Override public boolean isValid(final String fieldValue, final ConstraintValidatorContext context) { // is there a way to access the parent object here? } }

重置/删除Swing中的边框

这是一个非常具体的编码问题: 我最近被要求在工作中维护一些旧的Java Swing GUI代码并遇到这个问题: 我已将我自己的InputVerifier的子类MyFilenameVerifier附加到JTextField(但它也可能是用于这些目的的任何JComponent)。 我重写了verify()方法,以便调用super.verify(input) (其中input是要validation()的JComponent参数。 如果super.verify(input)返回false,我会: input.setBorder(BorderFactory.createLineBorder(Color.RED)); 这是在我之前很久就开始使用的整个UI应用程序的惯例,所以我没有很多选择,只要使用其他方式来吸引用户注意(希望我这样做)。 这就是它的工作方式。 问题是,一旦用户返回并在文本字段中输入有效内容,我需要一种方法将其设置回默认边框(而不是仅仅将其设置为Color.GRAY或其他任何颜色,这与其原始颜色不同边界)。 我需要一种方式来说,“删除多余的装饰并恢复正常”或者只是将边框设置为默认值,换句话说。

解耦模型和输入检查

将输入检查与模型分离并将其处理到其他地方(例如控制器)是一种好的做法吗? 如果是这样,怎么可以从MVC或DDD的角度来做呢?