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中内容
理解XWork2框架中的Action和Errors机制
本文深入解析了XWork2框架中的Action组件及其stack上下文使用方法,详细介绍了如何通过errors和stackContext获取错误信息和参数传递状态。通过示例代码展示了如何在用户操作中捕获和展示错误。

被折叠的 条评论
为什么被折叠?



