public void addActionError(String anErrorMessage)
{ validationAware.addActionError(anErrorMessage);
}
public void addActionMessage(String aMessage)
{
validationAware.addActionMessage(aMessage);
}
public void addFieldError(String fieldName, String errorMessage)
{
validationAware.addFieldError(fieldName, errorMessage);
}
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>验证数据</title>
</head>
<body>
<s:actionerror/>
<s:actionmessage/>
<s:form action="validate.action" theme="simple">
输入内容:<s:textfield name="msg"/>
<s:fielderror key="msg.hello" />
<br/>
<s:submit/>
</s:form>
</body>
</html>
import javax.servlet.http.*;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.*;
public class ValidateAction extends ActionSupport
{
private String msg;
public String execute()
{
System.out.println(SUCCESS);
return SUCCESS;
}
public void validate()
{
if(!msg.equalsIgnoreCase("hello"))
{
System.out.println(INPUT);
this.addFieldError("msg.hello", "必须输入hello!");
this.addActionError("处理动作失败!");
}
else
{
this.addActionMessage("提交成功");
}
}
public String getMsg()
{
return msg;
}
public void setMsg(String msg)
{
this.msg = msg;
}
}
<action name="validate" class="action.ValidateAction">
<result name="success">/error/validate.jsp</result>
<result name="input">/error/validate.jsp</result>
</action>
</package>
import java.util.Collection;
import java.util.Map;
public interface ValidationAware
{
void setActionErrors(Collection errorMessages);
Collection getActionErrors();
void setActionMessages(Collection messages);
Collection getActionMessages();
void setFieldErrors(Map errorMap);
Map getFieldErrors();
void addActionError(String anErrorMessage);
void addActionMessage(String aMessage);
void addFieldError(String fieldName, String errorMessage);
boolean hasActionErrors();
boolean hasActionMessages();
boolean hasErrors();
boolean hasFieldErrors();
}