You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by bu...@apache.org on 2004/05/28 22:18:54 UTC

DO NOT REPLY [Bug 29285] New: - Problem with validWhen while using map backed beans.

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=29285>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=29285

Problem with validWhen while using map backed beans.

           Summary: Problem with validWhen while using map backed beans.
           Product: Struts
           Version: Nightly Build
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Validator Framework
        AssignedTo: dev@struts.apache.org
        ReportedBy: ajoseph@logicden.com


Version of struts: nightly build as of 25-may-2004

I am getting a stack trace when using property names which populate map 
backed beans along with the "validwhen" validation rule.

Here is the JSP snippet:
<html-el:text property="value(partyCd)"
              size="10" 
              maxlength="10"/>
<html-el:text property="value(requirementRoleCd)"
              size="10" 
              maxlength="10"/>

Here is the code which current WORKS with the deprecated "requiredif" validation 
rule:
<field property="value(partyCd)" depends="requiredif">
  <arg key="partyCd.label" position="0"/>
  <var>
    <var-name>field[0]</var-name>
    <var-value>value(requirementRoleCd)</var-value>
  </var>
  <var>
    <var-name>fieldTest[0]</var-name>
    <var-value>NOTNULL</var-value>
  </var>
</field>

Here is the code which fails when using "validwhen" :
<field property="value(partyCd)" depends="validwhen">
    <arg key="partyCd.label" position="0" />
    <var>
        <var-name>test</var-name>
        <var-value>((value(requirementRoleCd) == null) or (*this* != 
null))</var-value>
    </var>
</field>

The stacktrace (partial) :
ine 1:4: unexpected token: value
	at 
org.apache.struts.validator.validwhen.ValidWhenParser.field(ValidWhenParser.java
:296)
	at 
org.apache.struts.validator.validwhen.ValidWhenParser.value(ValidWhenParser.java
:342)
	at 
org.apache.struts.validator.validwhen.ValidWhenParser.comparisonExpression(Valid
WhenParser.java:391)
	at 
org.apache.struts.validator.validwhen.ValidWhenParser.expr(ValidWhenParser.java:
374)
	at 
org.apache.struts.validator.validwhen.ValidWhenParser.joinedExpression(ValidWhen
Parser.java:405)
	at 
org.apache.struts.validator.validwhen.ValidWhenParser.expr(ValidWhenParser.java:
379)
	at 
org.apache.struts.validator.validwhen.ValidWhenParser.joinedExpression(ValidWhen
Parser.java:405)
	at 
org.apache.struts.validator.validwhen.ValidWhenParser.expr(ValidWhenParser.java:
379)
	at 
org.apache.struts.validator.validwhen.ValidWhenParser.expression(ValidWhenParser
.java:365)
	at 
org.apache.struts.validator.validwhen.ValidWhen.validateValidWhen(ValidWhen.java
:114)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at 
org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAc
tion.java:527)
	at org.apache.commons.validator.Field.validateForRule(Field.java:637)
	at org.apache.commons.validator.Field.validate(Field.java:716)
	at org.apache.commons.validator.Form.validate(Form.java:198)
	at org.apache.commons.validator.Validator.validate(Validator.java:284)
	at 
org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:112)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org