【发布时间】:2015-08-22 07:02:43
【问题描述】:
我在 jsp 中有一些字段,包括文件字段。当我提交表单时,如果某个字段的验证失败,在将其设置为ActionErrors 后,当响应返回到 JSP 时,所有字段都保留其值除了文件字段。
我的代码:
<s:form autocomplete="off" action="carrier-profile" id="id_form_carrier" namespace="/usermgmt"
enctype="multipart/form-data" method="POST">
<s:text name="txt.carrier.url"></s:text><span class="astrcs">*</span></label> <span>
<s:textfield type="text" name="carrier.carrierUrl" class="form-control" maxlength="255" tabindex="12"></s:textfield>
<s:file name="carrier.file" class="upload-input" id="imgInp" accept="image/*" tabindex="12"></s:file>
<s:submit/>
</s:form>
我的行动课:
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;
}
在上面的代码中,carrier 对象具有它的所有及其字段 getter setter。没有问题。
除文件外,所有其他字段name="carrier.xxx" 都保留。
【问题讨论】:
-
您对此无能为力。出于安全/隐私原因,服务器无法预填充类型文件的输入。唯一的方法是留在页面上并使用 AJAX 提交表单。
-
好的。我们可以使用 AJAX。谢谢
标签: ajax validation jsp struts2 struts2-jquery