【问题标题】:multiple forms in jsf primefacesjsf primefaces中的多种形式
【发布时间】: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 中是非法的)。当然你没有例如主模板中的另一个 &lt;h:form&gt; 可以包装一个或两个表单?
  • 已检查。我的第一页是搜索屏幕。出于某种原因,第二次点击搜索用户。但是,编辑用户功能会导致页面重新加载。这只发生在 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


【解决方案1】:

问题是我没有添加 primefaces 过滤器。现在我已将过滤器添加到 web.xml。我的问题变成了为什么它不能在 IE 10 中始终如一地工作。它第一次工作,但在随后的刷新时不起作用。

我还没有弄清楚。似乎如果我更改兼容模式,应用程序开始工作,但在每次页面刷新(非 ajax)后,它会回到一个奇怪的行为,第一次点击不起作用但第二次点击......几乎就像一些 javascript 问题。 ..

这与 IE 问题/单点登录过滤器有关。阅读更多关于它的另一个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多