在Struts 中进行数据验证

 

主要有两种类型的数据验证,一种是数据的输入有效性验证,可以在ActionFormvalidate方法中进行验证;另一种是数据的逻辑有效性验证,可以在Action中进行验证.

首先说明如何在ActionForm中如何对前台输入的数据进行输入有效性验证:

1>     首先配置不合法数据的校验结果信息,可以配置在properties文件中,例如:application.properties中输入一下信息:

                  error1=username is null

error2=username.length=0

error3=username.length>0

2>     struts-config.xml中声明该文件:

……

<struts-config>

  …………….

     <message-resources parameter="application"/>

</struts-config>

3>     ActionForm中继承父类的validate方法,进行校验,如果不合法,则返回原页面:

public ActionErrors validate(ActionMapping actionMapping, javax.servlet.http.HttpServletRequest httpServletRequest) {

        ActionErrors errors = new ActionErrors();

        if ((username == null)) {

            errors.add("username", new ActionMessage("error1"));

            return errors;

        } else if ((username.length() < 1)) {

            errors.add("username", new ActionMessage("error2"));

            return errors;

        } else if ((username.length() >= 1)) {

            errors.add("username", new ActionMessage("error3"));

            return errors;

        }

        return errors;

}

4>     在前台页面显示错误信息:

<html:form action="/struts/loginAction.do?action=login">

<html:errors/> (或者<html:errors property=”username”/>)

</html:form>

如果需要把errors中的所有错误信息输出到前台,则调用<html:errors/>;

如果只需要把某条指定错误信息输出到前台页面,则调用<html:errors property=”username”/>,其中username是在ActionForm中定义的messageKey.

5>     在进行输入数据的有效性验证时,有几点需要注意的:

i>         struts-config.sml中配置action,需要把validate设为true;

ii>       struts-config.sml中配置action, 需要指定验证错误时的返回页: input="/struts/login.jsp"

iii>      properties文件要放到classpath,例如,放到/com/XXXX.properties,struts-config.xml中需要指定该路径:

<message-resources parameter="com.application"/>

    其次 , Action 中进行数据的逻辑有效性验证 , 需要用硬编码来实现了 , 这里就不再多说
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值