5.Form Validation(自理解版,非翻译)

来源:互联网 发布:mac 查看文件夹权限 编辑:程序博客网 时间:2024/06/06 03:46

介绍:

这节教程我们将探索Struts2来确认用户表单上的输入信息这是有2种方式的,这节我们将更加深入了解在struts2 的action class更加基础的方法。(第一种方法)


在我们上一教程中,我们建立了一个注册页面及他的后台跳转。但是如果注册的用户输入信息是错误的。那我们如何提示返回给他们呢?

这就要牵扯到一个确认输入信息的struts2方法了。第一种是利用继承于actionSupport基类中的Validate方法。

如他的名字:确认,他的工作就是在执行execute方法前先确认输入信息是否正确(比较basic的第一种方法)


所以我们首先在RegisterAction.java中override一个validate方法。

并且加入验证,代码:

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");}}

这样就对用户输入信息进行验证了

PS:addFieldError此方法是对用户输入错误的信息进行提示。


但是仅仅进行验证是不够的,验证如果不通过的话,struts2将自动返回一个“input”给controller,我们必须要配置下返回值”input“

struts.xml:

<action name="register" class="org.apache.struts.register.action.RegisterAction" method="execute">  <result name="success">/Thankyou.jsp</result>  <result name="input">/Register.jsp</result>  </action>

就是说如果validate验证不通过系统返回input值后,我们将让他返回到Register.jsp这个注册页面。

并且带上我们之前addFieldError方法设置的错误信息。

注意:更好的方法是在html标签的 head那加上 <s:head />这样可以使错误的信息产生红色字体。


第一种方法完毕。