Formコンポーネントで clientValidation="false" にしたとき、余分なマークアップも消す方法

追記: ソース修正しました。BaseValidationDecoratorは中身からっぽで何もしないクラスなので毎回newするのは無駄でした。


Formコンポーネントで clientValidation="false" にすると、ブラウザ上での入力値検証が行われなくなりますが、出力されるHTML上にはエラー表示用のマークアップが残ったままになってしまいます。style="display:none;" となっているので問題無いのですが、この余分なマークアップも消すためのMixinです。

public class ValidationDecoratorDisabled {

    private static final ValidationDecorator
            DECORATOR_INSTANCE = new BaseValidationDecorator();

    @Inject
    private Environment _environment;

    void setupRender() {
        _environment.push(ValidationDecorator.class, DECORATOR_INSTANCE);
    }

    void cleanupRender() {
        _environment.pop(ValidationDecorator.class);
    }
}

次のように、FormコンポーネントにMixinします。

<t:form t:clientValidation="false" t:mixins="ValidationDecoratorDisabled">
    <t:textfield t:id="query"/>
    <input type="submit" value="検索"/>
</t:form>