This is interesting to say the least.  

I have a similar form where I MANUALLY PERFORM the validation and I stick in 
the message keys myself for a bunch of detail records.  I add them via a helper 

       * Return the field name that represents the detail row that is in error
       * @param row
       * @param fieldname
       * @return
      protected String getDetailFieldName( int row, String fieldname ) {
         StringBuffer buff = new StringBuffer( "locationtestresults[" );  // 
the name of the arraylist property 
         buff.append( row + "" );
         buff.append( "].");
         buff.append( fieldname );
         String returnValue = buff.toString();
         log.debug("getFieldName=" + returnValue );
         return (returnValue);
      } // getDetailFieldName    

A message was added like this:

               if (t_begin_date == null )
                  validateTestDates = false;
                  // StrutsUtils.addError(errors, getDetailFieldName(i, 
"test_begin_date"), "validation.error.testreportform.nulltest_begin_date");
                  errors.add(getDetailFieldName(i, "test_begin_date"), new 

The error class works fine on the front-end:

.FieldError {
   background-color: red;


<nested:text property="test_begin_date" size="11" maxlength="10" 

I should try an example that is similar to use and see how it behaves.  

What do you use for the validation that is creating these keys?  Struts 


-----Original Message-----
From: eugenebalt [] 
Sent: Tuesday, July 07, 2015 3:45 PM
Subject: Re: Struts 1.3 errorStyleClass Not Working (Error Field Highlighting)

So, I now have some more info about this problem, which could maybe help us 
debug it:

If you open Struts' BaseHandlerTag.doErrorsExist(), which is called to set the 
Error Style, it looks like this. Note the very last statement, the &&-paired 
double condition for errorsExist.

  protected boolean doErrorsExist() throws JspException {

        boolean errorsExist = false;

        if (getErrorStyleId() != null ||
            getErrorStyle() != null ||
            getErrorStyleClass() != null) {
            String actualName = prepareName();
            if (actualName != null) {
                ActionMessages errors = TagUtils.getInstance()
                errorsExist = (errors != null && errors.size(actualName) > 0);

For me, the SECOND condition is false, while the first one is true.
Condition #2 is not satisfied, because I have this:

1) actualName = "actionFormBean.contactPerson.firstName"
2) The Errors map holds a differently named string:

{ ... , contactPersonFirstName=[error.field.required[The Person to be contacted 
First Name]] , ... }

So the actual key in the Errors Map is "contactPersonFirstName", but the 
'actualName' var from prepareName() comes in as 
"actionFormBean.contactPerson.firstName". The key isn't found, so the highlight 
doesn't happen, and the style isn't applied.

Any thoughts on this?

View this message in context:
Sent from the Struts - User mailing list archive at

To unsubscribe, e-mail:
For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

Reply via email to