Spring Validator -->Automatische Valideriung

Deficiency

Grünschnabel
Hallo Leute!

Ich bin gerade dabei eine Server seitige Validierung zu implementieren in Spring, mithilfe des Validator Interface von Spring! Das funktioniert auch.

Nun habe ich aber gedacht, bzw. so aus der Refernz gelesen, das Spring mir die Arbeit abnimmt, den Validierung anzustoßen.

Aber wenn die Bean, die Validiert werden soll, gefüllt wird, passiert nichts.
Ich fülle die Bean in einem Handler!

Wenn ihr Code braucht dann sagt es, dann post ich ihn!

Danke
Flo
 
Du brauchst die Bean nicht selber füllen, das macht das Framework für dich. Wenn du den Validator richtig konfiguriert hast, wird der ebenfalls ausgeführt. Poste doch mal bitte deinen Controller Code. Plus die dazugehörige XML COnfig, wenn du die Konfiguration so vorgenommen hast.

Gruß
Ollie

PS: bitte nutz die [ java] oder [ code] tags...
 
HI!

Danke erstmal für deine Antwort
ich benutze kein Binding, also übernimmt doch das Framework für mich nicht das füllen der Bean.
Ja genau an der xml wird es liegen!
Ich poste mal was ich habe:

Code:
	<bean id="handleShipmentData"
		class="com.ulcairexport.shipment.uim.views.handlers.HandleShipmentData"
		parent="dataSourceTemplate" lazy-init="true">
		<property name="abstractDefaultApplication" ref="main" />
	 	<property name="validator" ref="valdiatorTestValBean"/>
	</bean>
	
	 <bean id="valdiatorTestValBean"
		class="com.airexport.shipment.business.bean.ValdiatorTestValBean" parent="dataSourceTemplate" lazy-init="true">
	 </bean>

Also der Validator ist der ValdiatorTestValBean (liegt noch im falschen Package)
und im handler: handleShipmentData
Das ist alles was ich habe!
 
Hm, warum lässt du das nicht das Framework machen? Nimm z.B. mal folgendes XML Fragment:

XML:
<bean id="deinController" class="deine.controller.Klasse">
  <property name="commandName" value="foo" />
  <property name="commandClass" value="foo.bar.CommandClass" />
  <property name="validator" ref="validator" />
  <property name="formView" value="formular" />
  <property name="successView" value="success" />
</bean>

<bean id="validator" class="deine.validator.Klasse" />

Wenn dein Controller von SimpleFormController erbt wird nun nach dem Absenden des Formulars in der JSP ein Objekt der Klasse foo.ba.CommandClass erstellt und die Formular daten daran gebunden (um das Formular zu bauen solltest du die SpringMVC Taglib benutzen, einfache input Felder mit folgender Namenskonvention reichen aber auch: ${commandName}.${property} (also foo.firstname, wenn deine Klasse CommandClass eine property firstname hat)).

Danach invoked Spring den Validator und leitet im Fehlerfall zurück auf "formular". Falls der Validator keine Fehler feststellt wird die Methode onSubmit gerufen, in der du das Object bekommst.

Den genauen Workflow beschreibt die JavaDoc von SImpleFormController.

Gruß
Ollie
 
Zuletzt bearbeitet von einem Moderator:
Hi Oliver!

Sorry, ich hätte sagen sollen das wir keine JSP anwendung haben. Spring bildet bei uns "nur" das Backend. ULC ist das Frontend.
Darum hab ich gedacht das läuft so, wenn Spring merkt, die Bean wird angefasst dann validiere ich sie.

Danke nochmal
 
Ein normaler HTTP POST Request reicht. Ob der von einem Formular kommt oder sonstwoher ist dem Framework völlig egal. Was ist ULC?

REINHAUN!
 
Das ist doch mal ein Ansatz. Das werde ich ausprobieren!

ULC ist ein Frontend der Firma Canoo. Hat einige Vorteile im Client/Server Umfeld (wenig Datenverkehr, keine Sync zwischen Client Server notwendig...) aber auch ein paar eigenheiten!

Danke für den Tipp. Melde mich morgen nochmal obs geklappt hat oder nicht!

:D
 

Neue Beiträge

Zurück