2009-11-03 7 views
3

Je développe l'application avec Spring Web MVC, Hibernate ..validation côté serveur avec Spring classe Web MVC validateur

Maintenant, j'ai ma configuration de la page de connexion comme:

<bean name="/uservalidate.htm" class="UserValidateFormController"> 
     <property name="sessionForm" value="true"/> 
     <property name="commandName" value="User"/> 
     <property name="commandClass" value="User"/> 
     <property name="formView" value="login"/> 
     <property name="userSecurityProcessor" ref="IUserSecurityProcessor"/> 
     <property name="validator"> 
      <bean class="LoginValidator"/> 
     </property> 
     <property name="successView" value="layout.jsp"/> 

Maintenant, après avoir soumis de contrôle de connexion de la page va Validator classe c.-à-LoginValidator ..

Mais, à cette classe je ne reçois pas référence de mon userSecurityProcessor qui me donne des données côté serveur ..

Quelqu'un peut-il suggérer, comment puis-je vérifier le nom d'utilisateur et mot de passe dans ma classe Validator ..?

Merci à l'avance ..

Répondre

2

Créez une instance de LoginValidator en tant que bean séparé. Dans votre LoginValidator, ajoutez une propriété userSecurityProcessor. Ensuite, dans votre fichier de configuration, injectez une référence à une instance d'un IUserSecurityProcessor comme vous le faites ci-dessus. Donc, quelque chose comme ceci:

<bean name="loginValidator" class="LoginValidator"> 
<property name="userSecurityProcessor" ref="IUserSecurityProcessor"/> 
</bean> 

changer ensuite

<bean name="/uservalidate.htm" class="UserValidateFormController"> 
    <property name="sessionForm" value="true"/> 
    <property name="commandName" value="User"/> 
    <property name="commandClass" value="User"/> 
    <property name="formView" value="login"/> 
    <property name="userSecurityProcessor" ref="IUserSecurityProcessor"/> 
    <property name="validator"> 
     <bean class="LoginValidator"/> 
    </property> 
    <property name="successView" value="layout.jsp"/> 

à

<bean name="/uservalidate.htm" class="UserValidateFormController"> 
    <property name="sessionForm" value="true"/> 
    <property name="commandName" value="User"/> 
    <property name="commandClass" value="User"/> 
    <property name="formView" value="login"/> 
    <property name="userSecurityProcessor" ref="IUserSecurityProcessor"/> 
    <property name="validator" ref = "loginValidator"/> 
    <property name="successView" value="layout.jsp"/> 
+0

ouah! n'est-ce pas ce que j'ai déjà dit :) –

-1

validate public void (cible d'objets, erreurs Erreurs) { utilisateur user = (utilisateur) cible; Chaîne nom d'utilisateur = user.getUsername(); Chaîne mot de passe = user.getPassword(); .......... }

+0

La question implique que UserSecurityProcessor est nécessaire pour valider le nom d'utilisateur et mot de passe (ce qui semble être une bonne approche pour moi) . –

+0

Maniganda Prakash: Ce n'est pas que j'ai mentionné dans ma question .. J'ai clairement spécifier comment puis-je obtenir ref de userSecurityProcessor bean dans ma classe Validator .... Les ans de bpapa et de Rakesh Juyal sont parfaits .. – Nirmal

+0

Oui, mon erreur. – novice

1

Vous pouvez obtenir userSecurityProcessor dans Validator. Le seul objet que vous obtiendrez est le commandObject. Dans votre cas, il est User

Mais dans le cas où vous avez besoin, alors vous devrez lier Validator

<bean id="myValidator" class="LoginValidator"> 
    <property name="userSecurityProcessor" ref="IUserSecurityProcessor"/> 
</bean> 

Maintenant, lier ce validateur avec votre formulaire.