如:
@Namespace("/")
@Results({@Result(name = "input", location = "geterr.action", type = "redirect")})
public class FuAction extends ActionSupport{ @Override
public String execute() throws Exception{}
@Action("geterr")
public String dosomething() throws Exception
{
//请在这里实现获取的fielderror,谢谢
}}
@Namespace("/")
@Results({@Result(name = "input", location = "geterr.action", type = "redirect")})
public class FuAction extends ActionSupport{ @Override
public String execute() throws Exception{}
@Action("geterr")
public String dosomething() throws Exception
{
//请在这里实现获取的fielderror,谢谢
}}
final Map errors = internalGetFieldErrors();
3 List thisFieldErrors = (List) errors.get(fieldName);
4
5 if (thisFieldErrors == null) {
6 thisFieldErrors = new ArrayList();
7 errors.put(fieldName, thisFieldErrors);
在实际的项目开发应用中如果同时用到field和action错误级别的时候,在jsp页面中的表单有用到struts2的标签来实现的话,就有可能对于同一个表单,既有filed级别error提示又有action级别的error提示,这时,可以根据项目的实际需要来取舍,但是如果两个都要同时存在的时候,只显示action级别的error,而不显示field级别的action,由于struts2标签默认就是显示field级别的error,所以要修改模板,加入theme="simple"即可,这时struts2表单那标签默认的显示field错误提示失效,使用这个模板的好处还可以和普通的html一样随便设计版面。例如:<s:form action="RegisterAction"theme="simple" >
PS:要显示action级别的错误提示,需要在jsp页面中的表单里面加入<s:actionerror/>.
这个返回一个Map<String,List<String>>,因为一个字段上面可能会有多个错误.!
但是最最NNBB的方法,直接修改它的ftl文件, 我们以前都这么做的.!