Das Notes Forum

Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: Flachmann am 23.08.16 - 11:18:25

Titel: Mal wieder customValidator
Beitrag von: Flachmann am 23.08.16 - 11:18:25
Hallo!

Ich habe http://atnotes.de/index.php?topic=55872.0 (http://atnotes.de/index.php?topic=55872.0) gefunden, wollte da auch antworten, aber die Seite meint, das das Thema schon etwas alt sei.   ::)  Darum auf ein Neues:

Mein Custom Validator speichert das Dokument unabhängig vom zurück gegebenen Wert von validate.

Code
<xe:this.validators>
	<xp:customValidator
		message="Dieser Wert wurde schon schon verwendet.">
		<xp:this.validate><![CDATA[#{javascript:var sID:String = getComponent('inputText1').getSubmittedValue();

var vieLU:NotesView     = database.getView('(vieLU)');
var docLU:NotesDocument = vieLU.getDocumentByKey(sID, true);

return (docLU == null) ? true : false;}]]></xp:this.validate>
	</xp:customValidator>
</xe:this.validators>

Im Prinzip soll hier nur geprüft werden, ob der Wert in inputText1 schon in einer Ansicht vorkommt. inputText1 ist nicht leer und docLU wird auch gefunden (ist soweit schon überprüft). D.h. der Vergleich liefert in diesem Fall false zurück und sollte also den Wert message anzeigen. Stattdessen wird aber gespeichert. - Wobei es egal ist, was zurück geliefert wird (true oder false), es wird in jedem Fall gespeichert und das Dokument doppelt angelegt.

Titel: Re: Mal wieder customValidator
Beitrag von: Flachmann am 23.08.16 - 11:27:51
Ach Mist, sorry, das sollte natürlich ins "ND9: Entwicklung"-Board.
Titel: Re: Mal wieder customValidator
Beitrag von: Sven Hasselbach am 23.08.16 - 16:38:19
Ein Validator muss einen String oder eine FacesMessage zurück liefern, und nicht true oder false.
Titel: Re: Mal wieder customValidator
Beitrag von: Flachmann am 24.08.16 - 14:06:33
Hallo Sven,

danke für Deine Antwort. Ja, damit geht es. Dann wundere ich mich, wozu der message-Parameter gut ist. Ich hätte erwartet, dass der die Fehlermeldung enthält, die angezeigt werden soll...