<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <meta name="Date-Revision-yyyymmdd" content="20140918"/>
  <meta http-equiv="Content-Language" content="en"/>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <title>OVal Plugin</title>

  <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css">
  <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
  <link href="/css/main.css" rel="stylesheet">
  <link href="/css/custom.css" rel="stylesheet">
  <link href="/highlighter/github-theme.css" rel="stylesheet">

  <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
  <script type="text/javascript" src="/bootstrap/js/bootstrap.js"></script>
  <script type="text/javascript" src="/js/community.js"></script>
</head>
<body>

<a href="http://github.com/apache/struts" class="github-ribbon">
  <img style="position: absolute; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub">
</a>

<header>
  <nav>
    <div role="navigation" class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" data-toggle="collapse" data-target="#struts-menu" class="navbar-toggle">
            Menu
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a href="/index.html" class="navbar-brand logo"><img src="/img/struts-logo.svg"></a>
        </div>
        <div id="struts-menu" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Home<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/index.html">Welcome</a></li>
                <li><a href="/download.cgi">Download</a></li>
                <li><a href="/releases.html">Releases</a></li>
                <li><a href="/announce.html">Announcements</a></li>
                <li><a href="http://www.apache.org/licenses/">License</a></li>
                <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Support<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/mail.html">User Mailing List</a></li>
                <li><a href="https://issues.apache.org/jira/browse/WW">Issue Tracker</a></li>
                <li><a href="/security.html">Reporting Security Issues</a></li>
                <li class="divider"></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Migration+Guide">Version Notes</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Security+Bulletins">Security Bulletins</a></li>
                <li class="divider"></li>
                <li><a href="/maven/project-info.html">Maven Project Info</a></li>
                <li><a href="/maven/struts2-core/dependencies.html">Struts Core Dependencies</a></li>
                <li><a href="/maven/struts2-plugins/modules.html">Plugin Dependencies</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Documentation<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/birdseye.html">Birds Eye</a></li>
                <li><a href="/primer.html">Key Technologies</a></li>
                <li><a href="/kickstart.html">Kickstart FAQ</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Home">Wiki</a></li>
                <li class="divider"></li>
                <li><a href="/getting-started/">Getting Started</a></li>
                <li><a href="/security/">Security Guide</a></li>
                <li><a href="/core-developers/">Core Developers Guide</a></li>
                <li><a href="/tag-developers/">Tag Developers Guide</a></li>
                <li><a href="/maven-archetypes/">Maven Archetypes</a></li>
                <li><a href="/plugins/">Plugins</a></li>
                <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
                <li><a href="/tag-developers/tag-reference.html">Tag reference</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/FAQs">FAQs</a></li>
                <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Contributing<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/youatstruts.html">You at Struts</a></li>
                <li><a href="/helping.html">How to Help FAQ</a></li>
                <li><a href="/dev-mail.html">Development Lists</a></li>
                <li><a href="/contributors/">Contributors Guide</a></li>
                <li class="divider"></li>
                <li><a href="/submitting-patches.html">Submitting patches</a></li>
                <li><a href="/builds.html">Source Code and Builds</a></li>
                <li><a href="/coding-standards.html">Coding standards</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Contributors+Guide">Contributors Guide</a></li>
                <li class="divider"></li>
                <li><a href="/release-guidelines.html">Release Guidelines</a></li>
                <li><a href="/bylaws.html">PMC Charter</a></li>
                <li><a href="/volunteers.html">Volunteers</a></li>
                <li><a href="https://gitbox.apache.org/repos/asf?p=struts.git">Source Repository</a></li>
                <li><a href="/updating-website.html">Updating the website</a></li>
              </ul>
            </li>
            <li class="apache"><a href="http://www.apache.org/"><img src="/img/apache.png"></a></li>
          </ul>
        </div>
      </div>
    </div>
  </nav>
</header>


<article class="container">
  <section class="col-md-12">
    <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/plugins/oval/index.md" title="Edit this page on GitHub">Edit on GitHub</a>
    
    <a href="../" title="back to Plugins"><< back to Plugins</a>
    
    <h1 id="oval-plugin">OVal Plugin</h1>

<h2 id="overview">Overview</h2>

<p><a href="http://oval.sourceforge.net/">OVal</a> is a pragmatic and extensible validation framework for any kind of Java objects (not only JavaBeans). Constraints can be declared with annotations (@NotNull, @MaxLength), POJOs or XML. Custom constraints can be expressed as custom Java classes or by using scripting languages such as JavaScript, Groovy, BeanShell, OGNL or MVEL.</p>

<p>The OVal plugin provides support for using the <a href="http://oval.sourceforge.net/">OVal Validation Framework</a></p>

<h2 id="interceptors">Interceptors</h2>

<p>The plugin defines the interceptor “ovalValidation” and the interceptor stack “ovalValidationStack” in the “oval-default” package. To use this interceptor, extend the “oval-default” package and apply the interceptor to your action, like:</p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;struts&gt;</span>
   <span class="nt">&lt;package</span> <span class="na">namespace=</span><span class="s">"/myactions"</span> <span class="na">name=</span><span class="s">"myactions"</span> <span class="na">extends=</span><span class="s">"oval-default"</span><span class="nt">&gt;</span>
        <span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">"simpleFieldsXMLChild"</span> <span class="na">class=</span><span class="s">"org.apache.struts2.interceptor.SimpleFieldsXMLChild"</span><span class="nt">&gt;</span>
            <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"ovalValidationStack"</span><span class="nt">/&gt;</span>
            <span class="nt">&lt;result</span> <span class="na">type=</span><span class="s">"void"</span><span class="nt">&gt;&lt;/result&gt;</span>
        <span class="nt">&lt;/action&gt;</span>
   <span class="nt">&lt;/package&gt;</span>
<span class="nt">&lt;/struts&gt;</span>
</code></pre></div></div>

<h2 id="annotations">Annotations</h2>

<p>OVal provides many annotations for validations that can be used out of the box (custom validators can also be defined). Once the “ovalValidation” interceptor is applied to an action, you can annotate it:</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">SimpleField</span> <span class="kd">extends</span> <span class="n">ActionSupport</span><span class="o">{</span>
    <span class="nd">@NotNull</span><span class="o">()</span>
    <span class="nd">@NotEmpty</span>
    <span class="nd">@Length</span><span class="o">(</span><span class="n">max</span> <span class="o">=</span> <span class="mi">3</span><span class="o">)</span>
    <span class="kd">private</span> <span class="n">String</span> <span class="n">name</span><span class="o">;</span>
<span class="c1">//...</span>
<span class="o">}</span>
</code></pre></div></div>

<p>Use the @AssertValid annotation to validate nested objects, like</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">MemberObject</span> <span class="kd">extends</span> <span class="n">ActionSupport</span> <span class="o">{</span>
    <span class="nd">@AssertValid</span>
    <span class="kd">private</span> <span class="n">Person</span> <span class="n">person</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Person</span><span class="o">();</span>

    <span class="kd">public</span> <span class="n">Person</span> <span class="nf">getPerson</span><span class="o">()</span> <span class="o">{</span>
        <span class="k">return</span> <span class="n">person</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<h2 id="xml-configuration">XML Configuration</h2>

<p>OVal provides support for defining the validation via XML. Validation files must end in “-validation.xml” and the rules to find them, are the same rules used to find the validation XML files used by the regular validation mechanisms (default validation in xwork):</p>

<ol>
  <li>
    <p>Per Action class: in a file named ActionName-validation.xml</p>
  </li>
  <li>
    <p>Per Action alias: in a file named ActionName-alias-validation.xml</p>
  </li>
  <li>
    <p>Inheritance hierarchy and interfaces implemented by Action class: The plugin searches up the inheritance tree of the action to find default validations for parent classes of the Action and interfaces implemented</p>
  </li>
</ol>

<p>Here is an example of an XML validation file:</p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span>
<span class="nt">&lt;oval</span> <span class="na">xmlns=</span><span class="s">"http://oval.sf.net/oval-configuration"</span> <span class="na">xmlns:xsi=</span><span class="s">"http://http://www.w3.org/2001/XMLSchema-instance"</span>
 <span class="na">xsi:schemaLocation=</span><span class="s">"http://oval.sf.net/oval-configuration http://oval.sourceforge.net/oval-configuration-1.3.xsd"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;class</span> <span class="na">type=</span><span class="s">"org.apache.struts2.interceptor.SimpleFieldsXML"</span> <span class="na">overwrite=</span><span class="s">"false"</span>
           <span class="na">applyFieldConstraintsToSetters=</span><span class="s">"true"</span><span class="nt">&gt;</span>
        <span class="nt">&lt;field</span> <span class="na">name=</span><span class="s">"firstName"</span><span class="nt">&gt;</span>
            <span class="nt">&lt;notNull/&gt;</span>
        <span class="nt">&lt;/field&gt;</span>
    <span class="nt">&lt;/class&gt;</span>
<span class="nt">&lt;/oval&gt;</span>
</code></pre></div></div>

<h2 id="profiles">Profiles</h2>

<p>A profile is a set of validations, that can be enabled for a method in an action, for example:</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="nn">org.apache.struts2.validation.Profiles</span><span class="o">;</span>

<span class="kd">public</span> <span class="kd">class</span> <span class="nc">FieldsWithProfiles</span> <span class="kd">extends</span> <span class="n">ActionSupport</span> <span class="o">{</span>
    <span class="nd">@NotNull</span><span class="o">(</span><span class="n">profiles</span> <span class="o">=</span> <span class="s">"1"</span><span class="o">)</span>
    <span class="kd">private</span> <span class="n">String</span> <span class="n">firstName</span><span class="o">;</span>

    <span class="nd">@NotNull</span><span class="o">(</span><span class="n">profiles</span> <span class="o">=</span> <span class="s">"2"</span><span class="o">)</span>
    <span class="kd">private</span> <span class="n">String</span> <span class="n">middleName</span><span class="o">;</span>

    <span class="nd">@NotNull</span><span class="o">(</span><span class="n">profiles</span> <span class="o">=</span> <span class="s">"3"</span><span class="o">)</span>
    <span class="kd">private</span> <span class="n">String</span> <span class="n">lastName</span><span class="o">;</span>

    <span class="nd">@Profiles</span><span class="o">({</span><span class="s">"1"</span><span class="o">,</span> <span class="s">"3"</span><span class="o">})</span>
    <span class="kd">public</span> <span class="n">String</span> <span class="nf">firstAndLast</span><span class="o">()</span> <span class="o">{</span>
        <span class="k">return</span> <span class="n">SUCCESS</span><span class="o">;</span>
    <span class="o">}</span>

    <span class="nd">@Profiles</span><span class="o">({</span><span class="s">"2"</span><span class="o">})</span>
    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">middle</span><span class="o">()</span> <span class="o">{</span>
        <span class="k">return</span> <span class="n">SUCCESS</span><span class="o">;</span>
    <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<p>In this example, when <em>firstAndLast()</em>  is executed, the fields <em>firstName</em>  and <em>lastName</em>  will be validated. When <em>middle()</em>  is executed, only <em>middleName</em>  will be validated. When a method is annotated with the <em>Profiles</em>  annotation, only the validations in the specified profiles will be performed. If no profile is specified for an action method, all the validations in the class will be evaluated.</p>

<h2 id="internationalization-of-messages">Internationalization of messages</h2>

<p>The OVal annotations (and corresponding XML tags) have a <em>message</em>  attribute that can be used to specify either the error message, or the key of the error message. If a key is found in a property file, matching the value of the <em>massage</em>  attribute, it will be used as the message, otherwise the value will be used as a literal string. For example, given this property file:</p>

<p><strong>BookAction.properties</strong></p>

<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>notnull.field=${field.name} cannot be null

field.too.long=${field.name} value is too long, allowed length is ${max}
</code></pre></div></div>

<p>and this class:</p>

<p><strong>BookAction.java</strong></p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">BookActionextends</span> <span class="kd">extends</span> <span class="n">ActionSupport</span> <span class="o">{</span>
    <span class="nd">@NotNull</span><span class="o">(</span><span class="n">message</span> <span class="o">=</span> <span class="s">"notnull.field"</span><span class="o">)</span>
    <span class="nd">@Length</span><span class="o">(</span><span class="n">max</span> <span class="o">=</span> <span class="mi">3</span><span class="o">,</span> <span class="n">message</span> <span class="o">=</span> <span class="s">"field.too.long"</span><span class="o">)</span>
    <span class="kd">private</span> <span class="n">String</span> <span class="n">title</span><span class="o">;</span>

    <span class="nd">@NotNull</span><span class="o">(</span><span class="n">message</span> <span class="o">=</span> <span class="s">"You must enter a valid ISBN"</span><span class="o">)</span>
    <span class="kd">private</span> <span class="n">String</span> <span class="n">isbn</span><span class="o">;</span>
<span class="c1">//...</span>
<span class="o">}</span>
</code></pre></div></div>

<p>When that action is validated, the field errors would be:</p>

<ul>
  <li>
    <p>“title cannot be null”</p>
  </li>
  <li>
    <p>“You must enter a valid ISBN”</p>
  </li>
  <li>
    <p>“title value is too long, allowed length is 3”</p>
  </li>
</ul>

<p>The current OVal “context” object is pushed into the stack for each validator, so it can be accessed from the property file to build the error message. See the <a href="http://oval.sourceforge.net/api/net/sf/oval/context/FieldContext.html">OVal javadoc</a> for more properties available in the FieldContext class.</p>

<h2 id="the-oval-validation-interceptor">The OVal Validation Interceptor</h2>

<p>This interceptor runs the action through the standard validation framework, which in turn checks the action against any validation rules (found in files such as ActionClass-validation.xml) and adds field-level and action-level error messages (provided that the action implements com.opensymphony.xwork2.ValidationAware). This interceptor is often one of the last (or second to last) interceptors applied in a stack, as it assumes that all values have already been set on the action.</p>

<p>This interceptor does nothing if the name of the method being invoked is specified in the <em>excludeMethods</em>  parameter. <em>excludeMethods</em>  accepts a comma-delimited list of method names. For example, requests to foo!input.action and foo!back.action will be skipped by this interceptor if you set the excludeMethods parameter to “input, back”.</p>

<p>Note that this has nothing to do with the com.opensymphony.xwork2.Validateable interface and simply adds error messages to the action. The workflow of the action request does not change due to this interceptor. Rather, this interceptor is often used in conjuction with the workflow interceptor.</p>

<p>NOTE: As this method extends off MethodFilterInterceptor, it is capable of deciding if it is applicable only to selective methods in the action class. See MethodFilterInterceptor for more info.</p>

<p>The param <em>alwaysInvokeValidate</em>  (default to <em>true</em> ), will make the interceptor invoke <em>validate()</em>  on the action, if the action implements <em>Validateable</em> .</p>

<p>The param <em>programmatic</em>  (defaults to <em>true</em> ), will make the plugin call <em>validateX()</em>  where <em>X</em>  is the name of the method that will be invoked in the action. If this param is set to <em>false</em> , <em>alwaysInvokeValidate</em>  is ignored and <em>validate()</em>  won’t be invoked.</p>

<h2 id="installation">Installation</h2>

<p>The jar plugin needs to be added to the lib directory of your application as well as other dependencies. If you are using XML validation, XStream needs to be included. Here is the maven dependency example:</p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;dependency&gt;</span>
    <span class="nt">&lt;groupId&gt;</span>com.thoughtworks.xstream<span class="nt">&lt;/groupId&gt;</span>
    <span class="nt">&lt;artifactId&gt;</span>xstream<span class="nt">&lt;/artifactId&gt;</span>
    <span class="nt">&lt;version&gt;</span>1.3.1<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
</code></pre></div></div>

<h2 id="configuration-reference">Configuration reference</h2>

<p>Add a <em>constant</em>  element to your struts config file to change the value of a configuration setting, like:</p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.oval.validateJPAAnnotations"</span> <span class="na">value=</span><span class="s">"true"</span> <span class="nt">/&gt;</span>
</code></pre></div></div>

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Default Value</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>struts.oval.validateJPAAnnotations</td>
      <td>false</td>
      <td>Enables <a href="http://oval.sourceforge.net/userguide.html#d0e242">mapping of JPA annotations to Oval validators</a></td>
    </tr>
  </tbody>
</table>

<h2 id="resources">Resources</h2>

<ul>
  <li>
    <p><a href="http://oval.sourceforge.net/userguide.html">OVal User Guide</a></p>
  </li>
  <li>
    <p><a href="http://oval.sourceforge.net/userguide.html">OVal Javadoc</a></p>
  </li>
  <li>
    <p><a href="http://oval.sourceforge.net/userguide.html#d0e1138">OVal Tutorials</a></p>
  </li>
</ul>

  </section>
</article>


<footer class="container">
  <div class="col-md-12">
    Copyright &copy; 2000-2018 <a href="http://www.apache.org/">The Apache Software Foundation </a>.
    All Rights Reserved.
  </div>
  <div class="col-md-12">
    Apache Struts, Struts, Apache, the Apache feather logo, and the Apache Struts project logos are
    trademarks of The Apache Software Foundation.
  </div>
  <div class="col-md-12">Logo and website design donated by <a href="https://softwaremill.com/">SoftwareMill</a>.</div>
</footer>

<script>!function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (!d.getElementById(id)) {
    js = d.createElement(s);
    js.id = id;
    js.src = "//platform.twitter.com/widgets.js";
    fjs.parentNode.insertBefore(js, fjs);
  }
}(document, "script", "twitter-wjs");</script>
<script src="https://apis.google.com/js/platform.js" async="async" defer="defer"></script>

<div id="fb-root"></div>

<script>(function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s);
  js.id = id;
  js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>


</body>
</html>
