JSF wie man Validatoren vorübergehend deaktiviert, um den Entwurf zu speichern

Ich habe eine ziemlich komplexe Form mit vielen Eingaben und Validatoren. Für den Benutzer dauert dies ziemlich lange (sogar über eine Stunde), sodass er die Entwurfsdaten auch dann speichern möchte, wenn sie gegen Regeln wie das Nicht-Eintippen von Pflichtfeldern verstoßen.

Ich glaube, dieses Problem ist vielen Webanwendungen gemeinsam, kann aber kein gut bekanntes Muster finden, wie dies implementiert werden sollte. Können Sie uns bitte mitteilen, wie wir das erreichen können?

Für jetzt kann ich die folgenden Optionen sehen:

use von instant = true auf der Schaltfläche "Save draft" (Entwurf speichern) funktioniert nicht, da die UI-Daten nicht auf dem Bean gespeichert werden, sodass ich nicht darauf zugreifen kann. Technisch gesehen konnte ich die Daten im UI-Komponentenbaum finden, aber das Durchlaufen scheint keine gute Idee zu sein.entfernen Sie alle validierten Felder von der Seite und validieren Sie die Datenprogrammierung im für das Formular definierten Aktionslistener. Auch dies ist keine gute Idee, das Formular ist sehr komplex, es gibt viele Felder, daher wäre die auf diese Weise implementierte Validierung sehr chaotisch.implementieren Sie meine eigenen Validatoren, die von einem Anforderungsattribut gesteuert werden, das für die Übermittlung von Standardformularen festgelegt wird (mit vollständiger Validierung) und für die Übermittlung von "Als Entwurf speichern" deaktiviert ist (wenn die Validierung übersprungen werden sollte). Auch dies ist keine gute Lösung. Ich müsste meine eigenen Wrapper für alle von mir verwendeten Validatoren bereitstellen.

Aber wie du siehst ist niemand wirklich vernünftig. Gibt es wirklich keine einfache Lösung für das Problem?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage