hai all,
我有一个关于返回表单文件值的问题是验证失败。我有一个表单,有一些字段由用户和一个附件字段fullfil.if其中一个字段是空白系统将提交错误提交表单..我的问题是,所有字段将有值我们在此之前输入但是对于表单文件它会消失。
答案 0 :(得分:0)
让我们看看我是否理解您的问题:您有一个包含多个输入字段的表单,其中包含用于上传某些文件内容的<input type=file>
。如果验证错误,您将返回该页面(我猜测struts2结果= INPUT)并显示以前填充字段的内容,但FILE字段除外。
这是有道理的,如果您了解在这种情况下Struts2中其他字段是如何“重新填充”的(仅从动作,通常将参数映射到属性)。服务器不知道文件的(clientside)完整路径,它不是沿着http请求发送的(这将是一个隐私问题),它是上传文件的内容(也许是没有路径的文件名)。你无法摆脱这种情况。
无论如何,我认为这是一个验证应该提前发出错误的情况(在javascript中,在客户端)。想一想:用户正在将文件(可能很大)与其他信息一起上传,在上传后,服务器会检查字段并指示用户重新填写字段并重试(包括上传)。这是不可接受的。那么,我的建议是包括客户端验证(如果它通过,并且服务器验证失败,那么用户必须重新签名以重新填充FILE字段)。如果文件很大,可以将输入表单分成两页,第一页填写几个字段,然后另一页上传文件。