入力値を受け取るためのプロパティは、バリデーションエラーになっても値を格納できるように プロパティの型をStringあるいはbooleanで定義してください。
SAStrutsはかなりいい感じだと思っています。
ただ、上記の仕様はおそらくStruts本体の制約とはいえもう一声、
という気持ちになってしまう。
やはり、日付はDate型、数値はInteger型とかで持ちたいものです。
『バリデーションエラーになっても値を格納できるように』
というのであれば、リクエストからバインドされたプロパティではなく、
バインド元のリクエスト内の値を使ってできないのかなぁ。