服务器端验证使用Spring Web MVC框架的验证器类

问题描述:

我正在开发使用Spring Web MVC框架,Hibernate的应用..服务器端验证使用Spring Web MVC框架的验证器类

现在,我有我的登录页面配置,如:现在

<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"/> 

,从后提交登录页面控制进入到验证器类即LoginValidator ..

但是,在这个类我没有得到我的userSecurityProcessor的参考,给了我的服务器端数据..

任何人都可以请建议,我如何检查我的Validator类中的用户名和密码..?

预先感谢..

将LoginValidator的一个实例创建为一个单独的bean。在您的LoginValidator中,添加一个userSecurityProcessor属性。然后在你的配置文件中注入一个对IUserSecurityProcessor实例的引用,就像你在上面做的那样。因此,像这样:

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

然后改变

<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

哇!这不是我已经说过的:) – 2009-11-03 17:00:43

公共void验证(对象目标,错误的错误){ 用户的用户=(用户)对象; String username = user.getUsername(); String password = user.getPassword(); .......... }

+0

问题意味着UserSecurityProcessor需要验证用户名和密码(这似乎是一个好办法给我) 。 – 2009-11-03 14:09:41

+0

Maniganda Prakash:这不是我在我的问题中提到的..我已经明确指出,我如何才能在我的Validator类中获得userSecurityProcessor bean的参考.... bpapa和Rakesh Juyal的答案都是完美的.. – Nirmal 2009-11-04 11:38:53

+0

是的,我的错误。 – novice 2009-11-04 11:41:34

您可以在验证器中获得userSecurityProcessor。你将得到的唯一对象是commandObject。你的情况是User

但如果你需要,那么你将不得不将其绑定验证器

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

现在,结合这个验证你的表格。