【问题标题】:Generating pop up in JSF在 JSF 中生成弹出窗口
【发布时间】:2008-12-20 10:40:48
【问题描述】:

我是 JSF 世界的新手,请帮助我在页面中生成一个弹出窗口。

这是我的要求,我将在我的母版页(父)中点击每个链接的链接列表,我需要显示一个包含一些详细信息的弹出窗口,我需要在弹出窗口中从数据库中获取豆豆。我的弹出窗口中将有几个按钮,并且对于每一个动作,我都会相应地进行数据库操作。我尝试了不同的方法,但都失败了。

我面临的问题是,当第一次弹出加载时它很好,并且可以按预期投射值。但它第二次在 init 函数中显示新值,我无法在屏幕上看到新值,而是显示第一个弹出值。

【问题讨论】:

  • 当您说“弹出窗口”时,您指的是新的浏览器窗口还是新的模态弹出窗口(例如浮动 div)?
  • 您使用的是哪个版本的 jsf?你也在用richfaces吗?您可以发布您的代码(页面中的按钮部分,您的托管 bean,..)吗?

标签: jsf


【解决方案1】:

您是否检查过您的 faces-config.xml 文件以确保您的 bean 在请求范围内?

<managed-bean-scope>request</managed-bean-scope>

如果您的 bean 在会话或应用程序范围内,则每次刷新页面时都不会重新创建 bean,因此 bean 中的值不会改变。

【讨论】:

    【解决方案2】:

    所以(如果我正确理解您的问题)问题是 bean 的修改值第二次没有进入前端?

    我很惊讶这种变化取决于它是否在弹出窗口中。

    一些想法:

    • 大概当您打开此弹出窗口时,您只是在访问一个页面,即http://localhost:8080/myApp/myPopupURL
    • mbean(当您说 mbean 时,您的意思是使用 #{name.javaBeanField} 访问的 java 对象对吗?)请求或会话范围?
    • 为了得到这个结果,你做了什么?您是否单击了弹出链接,然后再次单击该链接(预计已经打开的弹出窗口会刷新)?还是您单击链接,关闭弹出窗口并再次单击链接?还是您点击链接然后刷新弹出窗口?

    我目前没有可用的 JSF 设置,但如果有,我会尝试创建一个带有链接的单个 JSF 页面。该链接将打开一个指向静态 URL 的弹出窗口(如上面的示例)。静态 URL 将映射到一个非常简单的 mbean,它执行一些简单的操作,例如显示一个 int,它是 1 到一百万之间的随机数。

    让这项工作至少可以排除其他任何错误的可能性。我有时会遇到 JSF 随机吃异常和使用旧值刷新页面的问题(因为生命周期没有完成)。

    【讨论】:

      【解决方案3】:

      不太确定它是否是标准的 JSF(我很确定它不是,实际上),但你应该在你的支持 bean 中有一个 isPostBack() 方法,它可以让你知道你是否正在加载页面第一次或在动作后重新加载;如果您可以使用 isPostBack() 方法,您将能够仅在第一个页面加载时从数据库中加载值,而不会在操作后覆盖修改后的值。

      【讨论】:

        【解决方案4】:

        似乎与我有关的缓存,但请检查以下内容:

        • 您是否调试并查看过 bean 中的正确值;
        • 你确定它是那个bean的形式吗? 获取值;
        • 您确定浏览器点击了 第二次服务器?和
        • 您是否解析了日志(并激活了它们!)并确保没有错误?

        【讨论】:

          【解决方案5】:

          了解您如何显示弹出窗口以及您是否使用某些 JSF 组件来执行此操作会很有用。如果您只是显示一个隐藏的 div(或您在母版页加载时加载一次的任何内容),您可能不会再次呈现该 div,因此数据不会实现。

          【讨论】:

            【解决方案6】:

            我不是JSF的大程序员,但我想你需要JavaScript来触发点击事件的弹出窗口。JSF是一个服务器端Java框架,所以它可能无法打开一个新窗口。我不确定对于这个答案。以前用这个链接学习JSF思想:http://www.javapassion.com/handsonlabs/jsfsimpleapps/#Exercise_1

            【讨论】:

              【解决方案7】:

              MyFaces Orchestra 支持开箱即用的多窗口应用程序。

              【讨论】:

                猜你喜欢
                • 2011-02-16
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-06-23
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多