Struts2-第五篇-FormValidation

Form 验证

在这篇我们将探索用Struts2去验证用户的输入。有两种方式你可以用Struts2进行验证。这篇主要涉及基础的方法,在Action类中进行验证。

Add validate Method

如果确定使用Struts2 Action类去验证一个用户按Struts2形式输入,你需要定义一个验证方法在Action类。使用前面的例子Processing Forms,让我们说一下使用规则:

1、用户必须提供第一个名字

2、用户必须提供一个eamil地址

3、用户年龄小于18岁不能注册

如果就按照前一篇的介绍使用的输入形式。

在验证的方法中,我们能引用personBean实例的域的值,一旦我们有了值,就可以按照逻辑去执行我们的业务规则。

添加如下验证方法到Register.java方法中。

public  void  validate(){
     
     if  ( personBean.getFirstName().length() ==  0  ){
 
         addFieldError(  "personBean.firstName" "First name is required."  );
         
     }
     
             
     if  ( personBean.getEmail().length() ==  0  ){
 
         addFieldError(  "personBean.email" "Email is required."  );
         
     }
     
     if  ( personBean.getAge() <  18  ){
 
         addFieldError(  "personBean.age" "Age is required and must be 18 or older"  );
         
     }
     
     
}
当用户按下submit按钮在注册表单时,Struts2将转换用户的输入到personBean的实例域。Struts2将自动执行验证方法。如果任何一个if的条件为真,Struts2将执行addFielderror方法。

Handle Input Being Returned

如果用户输入的是无效的将返回"input",那我们将做什么?大部分情况是我们想重新显示web页并且包含一个用户错误的信息内容。

想提交返回的input的值,我们需要添加如下代码到struts.xml

<result name="input">/register.jsp</result>

上面的代码放在success result node之后,放在action node关闭之前。

ErrorMessages

当验证失败并且Struts2返回input,Struts2框架将重新显示register.jsp.一旦我们使用Struts形式标签,Struts2将自动添加错误信息。这些错误信息是调用addFieldError方法时被指定的。

addFieldError( "personBean.firstName""First name is required.")

部署运行:

http://localhost:8080/Forms_Validation/register.jsp  运行结果:


当点击"Submit"按钮时,如果不做任何输入时,页面显示效果


显示的红色效果,因为在<head></head>之间添加<s:head/>

以上是几个最基本的验证方法,当然还有更复杂的验证方法例如:XML



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值