服务器端验证使用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"/>
答
公共void验证(对象目标,错误的错误){ 用户的用户=(用户)对象; String username = user.getUsername(); String password = user.getPassword(); .......... }
答
您可以在验证器中获得userSecurityProcessor
。你将得到的唯一对象是commandObject
。你的情况是User
但如果你需要,那么你将不得不将其绑定验证器
<bean id="myValidator" class="LoginValidator">
<property name="userSecurityProcessor" ref="IUserSecurityProcessor"/>
</bean>
现在,结合这个验证你的表格。
哇!这不是我已经说过的:) – 2009-11-03 17:00:43