I know this is an old question, but I want to share my simple solution. It simply prints out every error message without additional html markup generated. Then you can wrap <s:property value="%{error}"/>in some custom html if you want.
<s:if test="hasActionErrors()">
<s:iterator var="error" value="%{actionErrors}">
<s:property value="%{error}"/>
</s:iterator>
</s:if>
source
share