【发布时间】:2015-10-20 19:57:21
【问题描述】:
我正在开发一个 primefaces 5.2 应用程序并使用 tomcat。我有一个文件上传组件。为了使文件上传组件正常工作,我更改了 enctype。后来我决定把表格一分为二。这就是我的问题开始的地方。当我有两种这样的形式时
<h:form id="mainForm">
</h:form>
<h:form id="uploadForm" enctype="multipart/form-data">
</h:form>
不起作用。即使是第一个表单请求也不再提交。如果我从第二种形式中取出 enctype,一切正常。
我已经查看了带有和不带有表单数据的第二种表单的网络数据。看起来数据使用 Firebug 是一样的。
由于它没有给我任何错误消息,我有点卡住了。我应该去哪里看?谢谢。
有趣的是我将表单数据的 enctype 添加到第一个表单并从第二个表单中删除,事情仍然有效。
【问题讨论】:
-
问题和答案中描述的症状可以识别为当您将表单相互嵌套时(这在 HTML 中是非法的)。当然你没有例如主模板中的另一个
<h:form>可以包装一个或两个表单? -
已检查。我的第一页是搜索屏幕。出于某种原因,第二次点击搜索用户。但是,编辑用户功能会导致页面重新加载。这只发生在 IE 10 上……如果我使用 IE 8,它可以正常工作。我有点不知所措。现在我会告诉用户尝试 Chrome。这是一个内部网络应用程序,所以应该没有问题。当我在开发过程中有更多时间时,我会尝试解决问题。除了来自 IE 控制台的无效标签启动消息之外,我没有看到任何错误消息。
-
如果您无法判断您是否以能够生成有效 HTML 的方式编写 JSF 代码,请运行 w3 HTML 验证器。
-
我做了,但是从 primefaces/jsf 生成的 html 存在太多问题。我刷新了缓存并删除了 。不确定这是否有帮助或者是缓存。页面加载后仍然需要额外的点击,但之后似乎没问题。对话框似乎也有问题,因为它们似乎没有正确刷新。 update 属性在 IE 10 中再次起作用。不知道为什么.. IE 10 在这里并不重要,因为它们应该移动到 IE 11,但我试图弄清楚发生了什么。
-
一件事,当它不工作时,你认为你点击了..它发布一个空包(没有关联的数据,没有请求参数)。与提琴手确认。
标签: jsf tomcat jsf-2 primefaces