由于在ActionSupport這個(gè)類實(shí)現(xiàn)了ValidationAware接口,接口里面聲明了這兩個(gè)方法:

2

3

4

5

6

7

而ValidationAwareSupport實(shí)現(xiàn)了ValidationAware接口,通過(guò)查看ValidationAwareSupport源碼中的兩個(gè)錯(cuò)誤提示方法:
private Collection actionErrors;
private Map fieldErrors;

2

3

4

5

6

7

8

9

10

11


2

3

4

注:由于fielderrors級(jí)別是Map類型,所以this.addFieldError("field name","error message"); ,而actionerror級(jí)別是Collection級(jí)別,所以this.addActionError("error message");
在實(shí)際的項(xiàng)目開(kāi)發(fā)應(yīng)用中如果同時(shí)用到field和action錯(cuò)誤級(jí)別的時(shí)候,在jsp頁(yè)面中的表單有用到struts2的標(biāo)簽來(lái)實(shí)現(xiàn)的話,就有可能對(duì)于同一個(gè)表單,既有filed級(jí)別error提示又有action級(jí)別的error提示,這時(shí),可以根據(jù)項(xiàng)目的實(shí)際需要來(lái)取舍,但是如果兩個(gè)都要同時(shí)存在的時(shí)候,只顯示action級(jí)別的error,而不顯示field級(jí)別的action,由于struts2標(biāo)簽?zāi)J(rèn)就是顯示field級(jí)別的error,所以要修改模板,加入theme="simple"即可,這時(shí)struts2表單那標(biāo)簽?zāi)J(rèn)的顯示field錯(cuò)誤提示失效,使用這個(gè)模板的好處還可以和普通的html一樣隨便設(shè)計(jì)版面。例如:<s:form action="RegisterAction"theme="simple" >
PS:要顯示action級(jí)別的錯(cuò)誤提示,需要在jsp頁(yè)面中的表單里面加入<s:actionerror/>。
-------------------------------------------------------------------------------------------------
PS:本博客文章,如果沒(méi)有注明是有“轉(zhuǎn)”字樣,屬于本人原創(chuàng)。如果需要轉(zhuǎn)載,務(wù)必注明作者和文章的詳細(xì)出處地址,否則不允許轉(zhuǎn)載,多謝合作!