Java 需要使用struts 2检查用户ID是否存在

Java 需要使用struts 2检查用户ID是否存在,java,validation,struts2,ognl,Java,Validation,Struts2,Ognl,我正在使用struts 2框架,并试图找出检查数据库中是否存在用户id的最佳方法 在我的上一个项目中,我使用jQueryAjax实现了这一点,但并不满意 在这个项目中,我使用验证框架进行服务器端输入字段检查,并在客户端使用jquery验证插件 我有一个DAO类,它调用DB来检查是否存在,我不想使用jQueryAjax,但更愿意使用Struts2验证框架 我是否可以使用这个DAO类的输出,并使用字段表达式或验证方法将其与验证xml结合起来?如果我使用验证方法?与action类的执行相比,这个方法的

我正在使用struts 2框架,并试图找出检查数据库中是否存在用户id的最佳方法

在我的上一个项目中,我使用jQueryAjax实现了这一点,但并不满意

在这个项目中,我使用验证框架进行服务器端输入字段检查,并在客户端使用jquery验证插件

我有一个DAO类,它调用DB来检查是否存在,我不想使用jQueryAjax,但更愿意使用Struts2验证框架

我是否可以使用这个DAO类的输出,并使用字段表达式或验证方法将其与验证xml结合起来?如果我使用验证方法?与action类的执行相比,这个方法的执行顺序是什么?我想要这种格式的顺序,首先我做客户端验证,然后是服务器端验证,然后只有在服务器端完成后,我才需要开始检查用户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>

电子邮件是必需的
请输入有效的电子邮件id

现在我需要检查数据库中是否存在电子邮件,因此我有返回true或false的DAO类,如何从DAO类添加验证?

您可以将fieldexpression validator添加到字段中。DAO返回的值应该放在值堆栈中。如果您在action类中创建一个getter并返回值,那么就很容易了

动作类:

public boolean getMyBoolean(){
返回myDAO.getMyboolean();
}
-validation.xml:


电子邮件是必需的
请输入有效的电子邮件id
数据库中存在电子邮件

为什么不在验证过程中检查用户是否存在?这就是我要做的。我的DAO返回布尔值true或false,如何使用字段表达式中类的返回值。你在说什么表达式?添加了详细信息。我现在清楚了吗?谢谢Roman,它工作得很好,在没有模型驱动接口的情况下,将getter值从action类传递到DAO时遇到了很多问题,最终解决了这些问题?。在那种情况下你应该怎么做?