介绍:
这节教程我们将探索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 />这样可以使错误的信息产生红色字体。
第一种方法完毕。