我正在使用struts 2框架并尝试查看检查数据库中是否存在用户ID的最佳方法。
在我的上一个项目中,我用jquery ajax做了这个,但对它不满意。
在这个项目中,我使用验证框架对客户端的输入字段和jquery validate插件进行服务器端检查。
我有一个DAO类,它调用DB来检查是否存在,我不想使用jquery ajax但是更喜欢使用struts 2验证框架。
他们是否可以使用此DAO类的输出并使用字段表达式或使用validate方法将其与我的验证xml结合使用?如果我使用验证方法?与执行动作类相比,此方法的执行顺序是什么?我想要这种格式的订单,首先我做客户端验证,然后是服务器端验证,然后只有服务器端完成,我需要启动检查用户ID是否存在然后最后插入数据库?
我的字段操作验证文件如下所示
<field name="Email">
<field-validator type="requiredstring">
<message>Email is required</message>
</field-validator>
<field-validator type="email">
<message>Please enter valid email id</message>
</field-validator>
现在我需要检查db中是否存在电子邮件,所以为此我有DAO类返回true或false,如何从dao类添加验证?
答案 0 :(得分:1)
您可以在字段中添加fieldexpression验证程序。 DAO返回的值应放在值栈中。如果在action类中创建一个getter并返回值,这很容易。
动作类:
public boolean getMyBoolean(){
return myDAO.getMyboolean();
}
<强> -validation.xml:强>
<field name="Email">
<field-validator type="requiredstring">
<message>Email is required</message>
</field-validator>
<field-validator type="email">
<message>Please enter valid email id</message>
</field-validator>
<field-validator type="fieldexpression">
<param name="expression"><![CDATA[myBoolean == false]]></param>
<message>email exists in db</message>
</field-validator>
</field>