【问题标题】:Need to check userid existence with struts 2需要使用struts 2检查用户标识是否存在
【发布时间】:2014-05-29 15:09:00
【问题描述】:

我正在使用 struts 2 框架并尝试查看检查数据库中是否存在用户 ID 的最佳方法。

在我的上一个项目中,我使用 jquery ajax 进行了此操作,但对它并不满意。

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

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

他们是我可以使用此 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>

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

【问题讨论】:

  • 为什么不在验证过程中检查用户是否存在?
  • 这就是我想要做的。MY DAO 返回布尔值 true 或 false,如何在字段表达式中使用类的返回值
  • 你在说什么表情?
  • 添加了详细信息。我现在清楚了吗。

标签: java validation struts2 ognl


【解决方案1】:

您可以将字段表达式验证器添加到字段。 DAO 返回的值应该放到值栈中。如果您在操作类中创建一个 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>

【讨论】:

  • 感谢 Roman,它运行良好,在没有模型驱动接口的情况下将 getter 值从动作类传递到 DAO 时遇到大量问题,终于解决了。
  • 如果您使用访问者验证器?你应该在那种情况下设置?
猜你喜欢
  • 1970-01-01
  • 2021-12-24
  • 2013-06-02
  • 1970-01-01
  • 1970-01-01
  • 2020-02-11
  • 2012-08-18
  • 2012-11-03
  • 2020-01-26
相关资源
最近更新 更多