1:actionErrors,filedErrors都是errors的子类
2:action有两个stack如下图:Value Stack Contents/Stack Context
前台通过<s:debug></s:debug>调出stack信息。方便查看参数传入成功否,对象创建成功否。没成功,value 为null
errors中数据以Map的形式存储,其中value的数值以数组的形式存储:errors.error[0] ({}大括号框起来,说明是数组的形式,获取要用到.[0]等等)
Stack Context也叫作Action Context ,获取数值格式 #key.name
Stack context 中存放有parameters,application,request,session,attr等等。
3:实例:
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
private String name;
public String add() {
if(name == null || !name.equals("admin")) {
this.addFieldError("name", "name is error");
this.addFieldError("name", "name is too long");
this.addFieldError("test", "what");
return ERROR;
}
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
前台读取错误信息:
<s:property value="errors.error[0]"/> //name is error
<s:property value="errors.test[0]"/> //what
<s:debug></s:debug>
注意:
<s:property /> propety标签是用来取value stack contents/stack context中内容