title: <s:file> doesn't retain its value when validation failed in action using Struts 2
body: <p>I have some fields in jsp including file field. When I submit my form, and then if validation failed for one fields, after setting it in <code>ActionErrors</code>, when response comes back to JSP, all fields retain their values <strong>except File field</strong>.</p>
  
  <p><strong>My Code:</strong></p>
  
  <pre class="lang-jsp prettyprint-override"><code>&lt;s:form autocomplete="off" action="carrier-profile" id="id_form_carrier" namespace="/usermgmt"
                  enctype="multipart/form-data" method="POST"&gt;
  
  &lt;s:text name="txt.carrier.url"&gt;&lt;/s:text&gt;&lt;span class="astrcs"&gt;*&lt;/span&gt;&lt;/label&gt; &lt;span&gt;
                              &lt;s:textfield type="text" name="carrier.carrierUrl" class="form-control" maxlength="255" tabindex="12"&gt;&lt;/s:textfield&gt;
  
  
  &lt;s:file name="carrier.file" class="upload-input" id="imgInp" accept="image/*" tabindex="12"&gt;&lt;/s:file&gt;
  &lt;s:submit/&gt;
  
  &lt;/s:form&gt;
  </code></pre>
  
  <p><strong>My Action Class:</strong><br></p>
  
  <pre class="lang-java prettyprint-override"><code>public class CarrierProfileAction extends BaseSecureAction {
  
      private static final Logger LOG = LogManager.getLogger(CarrierProfileAction.class);
  
      /**
       * 
       */
      private static final long serialVersionUID = -7296331027656555878L;
  
      private static final String RESULT_CARRIER_SEARCH = "carrier-search";
      //  private static final String RESULT_LOGO_PREVIEW = "logo-preview";
      //  private static final String RESULT_LOGO_UPDATE = "logo-update";
      public static final String CARRIER_ID = "carrierId";
      public static final String CARRIER_ID_NBR = "carrierIdNbr";
      public static final String RECORD_MODE = "mode";
  
      private static final String IMAGE = "Image";
  
      private CarrierVO carrier = new CarrierVO();
  
      //  private File file;
      private Long carrierId;
      private Long carrierIdNbr;
      private Long selectedCarrier;
      private boolean imagePreviewToBeShown;
      private String mode;
      private byte[] imagePreview;
  
      private String userImageFileName = "";
  
      private boolean validImage;
      InputStream imageInputStream;
  
  
  }
  </code></pre>
  
  <p>Above code, <code>carrier</code> object has all its and its fields getter setter. No issue in that.
  all the other fields <code>name="carrier.xxx"</code> are retaining except file. </p>