I have a form command object with a property named mail$from. Just in case some of you are thinking of it, nevermind that the property has a dollar sign in it. This is legal Java.
Anyway, the following code declares this property:
When I attempt to validate this, I get the following error:Code:@Email(message="The mail from address must be a valid email address", applyIf="mail$from HAS LENGTH") private String mail$from;
I have tried escaping the dollar sign with single quotes ("'$" and "'$'"), double quotes ('"$', '"$"'), back-slashes ("\\$"), double back-slashes ("\\\\$"), and extra dollar signs ("$$"). These all only cause different lexical errors. I've looked everywhere online, searched through these forums, searched Google, etc., to no avail.Code:org.springmodules.validation.valang.parser.TokenMgrError: Lexical error at line 1, column 5. Encountered: "$" (36), after : "" at org.springmodules.validation.valang.parser.ValangParserTokenManager.getNextToken(ValangParserTokenManager.java:2649) at org.springmodules.validation.valang.parser.ValangParser.jj_scan_token(ValangParser.java:1684) at org.springmodules.validation.valang.parser.ValangParser.jj_3_4(ValangParser.java:1245) at org.springmodules.validation.valang.parser.ValangParser.jj_2_4(ValangParser.java:946) at org.springmodules.validation.valang.parser.ValangParser.function(ValangParser.java:515) at org.springmodules.validation.valang.parser.ValangParser.multiplicativeExpr(ValangParser.java:643) at org.springmodules.validation.valang.parser.ValangParser.subtractiveExpr(ValangParser.java:615) at org.springmodules.validation.valang.parser.ValangParser.additiveExpr(ValangParser.java:587) at org.springmodules.validation.valang.parser.ValangParser.predicate(ValangParser.java:348) at org.springmodules.validation.valang.parser.ValangParser.expression(ValangParser.java:324) at org.springmodules.validation.valang.parser.ValangParser.predicates(ValangParser.java:262) at org.springmodules.validation.valang.parser.ValangParser.parseExpression(ValangParser.java:154) at org.springmodules.validation.util.cel.valang.ValangConditionExpressionParser.parse(ValangConditionExpressionParser.java:35) at org.springmodules.validation.bean.conf.loader.annotation.handler.AbstractPropertyValidationAnnotationHandler.extractApplicabilityContidion(AbstractPropertyValidationAnnotationHandler.java:197) at org.springmodules.validation.bean.conf.loader.annotation.handler.AbstractPropertyValidationAnnotationHandler.handleAnnotation(AbstractPropertyValidationAnnotationHandler.java:121) at org.springmodules.validation.bean.conf.loader.annotation.AnnotationBeanValidationConfigurationLoader.handleProprtyAnnotations(AnnotationBeanValidationConfigurationLoader.java:281) at org.springmodules.validation.bean.conf.loader.annotation.AnnotationBeanValidationConfigurationLoader.handlePropertyAnnotations(AnnotationBeanValidationConfigurationLoader.java:238) at org.springmodules.validation.bean.conf.loader.annotation.AnnotationBeanValidationConfigurationLoader.createValidationConfiguration(AnnotationBeanValidationConfigurationLoader.java:165) at org.springmodules.validation.bean.conf.loader.annotation.AnnotationBeanValidationConfigurationLoader.loadConfiguration(AnnotationBeanValidationConfigurationLoader.java:105) at org.springmodules.validation.bean.BeanValidator.validateObjectGraphConstraints(BeanValidator.java:174) at org.springmodules.validation.bean.BeanValidator.validate(BeanValidator.java:99)
So, how are you supposed to escape a dollar sign in a Valang expression within an expression field in a Spring Modules validation annotation parameter?
Thanks.



