
Strecks simplifies form validation by providing an extensible framework for adding validation annotations. An example of a vanilla Struts form is shown below:
/**
* Plain Struts form with validation code
*/
public class HolidayBookingForm extends ActionForm
{
    private String entryId;
    private String title;
    private String startDate;
    private String days;
    private boolean editMode;
    //form getters and setters omitted
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
    {
        ActionErrors errors = new ActionErrors();
        // TODO validate days (positive integer), date (format), 
        // and title (not exceeding max length)
        boolean hasError = false;
        if (title == null)
        {
            ActionMessage error = new ActionMessage("Title cannot be null", false);
            errors.add("title", error);
            hasError = true;
        }
        if (days == null)
        {
            ActionMessage error = new ActionMessage("Days cannot be null", false);
            errors.add("days", error);
            hasError = true;
        }
        else
        {
            if (!GenericValidator.isInt(days))
            {
                ActionMessage error = new ActionMessage("Days must be number", false);
                errors.add("days", error);
                hasError = true;
            }
        }
        if (startDate == null)
        {
            ActionMessage error = new ActionMessage("Start date cannot be null", false);
            errors.add("startDate", error);
            hasError = true;
        }
        else
        {
            if (!GenericValidator.isDate(startDate, "yyyy-MM-dd", false))
            {
                ActionMessage error = new ActionMessage(
                	"Start date must be a date in yyyy-MM-dd", false);
                errors.add("startDate", error);
                hasError = true;
            }
        }
        if (!hasError)
            return null;
        return errors;
    }
}
Programmatic validation as above is fairly tedious. An XML-based declarative framework is available from Struts
in the form of the Commons Validator. 
Strecks offers an alternative approach, allowing validations to be placed in annotations within the ActionForm:
/**
* Strecks form with validation annotations
*/
public class HolidayBookingForm extends ValidBindingForm
{
    private String title;
    private String startDate;
    private String days;
    private HolidayBooking booking;
    @ValidateRequired(order = 1, key = "holidaybookingform.title.null")
    public void setTitle(String title)
    {
        this.title = title;
    }
    @ValidateRequired(order = 2, key = "holidaybookingform.start.date.null")
    @ValidateDate(key = "holidaybookingform.start.date.format")
    public void setStartDate(String startDate)
    {
        this.startDate = startDate;
    }
    @ValidateRequired(order = 3, key = "holidaybookingform.days.null")
    @ValidateInteger(key = "holidaybookingform.days.number")
    public void setDays(String days)
    {
        this.days = days;
    }
    
    //form setters with bind and conversion annotations omitted
}