Struts2输入校验(三) addActionError的用法

Struts2的错误信息分两种级别,第一种是:field(属性)级别;第二种是:action级别

两者的区别在于:addFieldError事实上是将错误信息保存在一个Map中,通过属性名为key,错误信息为value的格式保存,而addActionError则是保存在一个Collection中,再详细的就是保存在一个ArrayList中的,所以,直接保存一个出错信息即可。

if(null == username || username.length() < 6 || username.length() > 10){
			
			this.addActionError("username invalid");
			
	}

当把代码做了以上修改之后,到页面中,输入错误信息,发现,页面回到当前页面,但是没有显示错误信息。

原因:Struts提供的标签有显示错误信息的功能,但是只针对field级别的错误,所以我们定义的action级别错误无法显示,但是由于已经出错,所以留在当前页面。

怎样判断页面是否出错,ActionSupport类中有一个hasErrors方法

public boolean hasErrors{

    return  (hasActionErrors()||hasFieldErrors());

}

所以,当hasActionErrors和hasFieldErrors中有一个为假,Struts就认为验证出错。

 

怎样才能在页面上显示ActionError呢?

在页面上加上<s:actionerror/>就OK啦!

转自:http://blog.csdn.net/rainberryli/article/details/6800638

你可能感兴趣的:(struts2)