【问题标题】:Various Questions about JSF关于 JSF 的各种问题
【发布时间】:2011-02-08 21:22:42
【问题描述】:

我正在做一个 JSF2 项目。

1 .我有一个带有一些复选框的表格。看下面的代码

<ui:repeat>
<h:selectManyCheckbox value="#{wagent.selectedPra}">...
</h:selectManyCheckbox>
</ui:repeat>

所以我在 ui:repeat 中使用 selectManyCheckbox,我希望不同 selectManyCheckbox 的值指向相同的值。 但是当表单提交时,我没有所有选定的框。 我该怎么做?

2 。我有一个带有一些输入的表格。在我的操作中,我想合并一些 pdf 文件,保持在同一页面上,并且出现一个弹出窗口来提供下载合并的文件。

3 .是否为每个请求创建了所有具有请求范围的托管 bean,或者仅在我在 xhtml 页面中使用它们时创建?

4 .我有一个用于注销的命令链接。在我的操作中,我使用 session.invalidate() 并返回“登录”。所以我回到登录,但是在验证登录时,我的会话托管 bean 似乎没有被创建。错误类似于 yourSessionBean 为空。怎么了?

【问题讨论】:

  • 顺便说一句,我对这种多问题合一没有问题,但将来你真的应该为每个问题单独问一个问题。这就是 Stackoverflow 对您的期望。这样可以实现更细粒度的搜索和更好的匹配,还可以更好地单独处理/关闭问题(例如,在重复的情况下)。

标签: java jsf jsf-2


【解决方案1】:

1:所以我在 ui:repeat 中使用 selectManyCheckbox,我希望不同的 selectManyCheckbox 的值指向相同的值。但是当表单提交时,我没有所有选定的框。我该怎么做?

让它们指向不同的值。对于给定的示例,每次都将覆盖 bean 值,直到循环结束。例如,在 bean 中使用 List&lt;List&lt;Pra&gt;&gt;(或任何 Pra 在您的问题中的含义):

<ui:repeat value="#{wagent.allSelectedPra}" var="selectedPra">
    <h:selectManyCheckbox value="#{selectedPra}">
        ...
    </h:selectManyCheckbox>
</ui:repeat>

2:我有一个带有一些输入的表单。在我的操作中,我想合并一些 pdf 文件,保持在同一页面上,并且出现一个弹出窗口来提供下载合并的文件。

至少需要做两件事:

facesContext.getExternalContext().addResponseHeader("Content-Disposition", "attachment;filename=name.pdf"); // Force "Save As" dialogue.
facesContext.responseComplete(); // Prevent JSF from taking response in hands.

3:是否为每个请求创建了所有具有请求范围的托管 bean,或者仅在我在 xhtml 页面中使用它们时创建?

它们是为每个 HTTP 请求创建的。您描述的范围仅适用于视图范围(如果我理解正确的话)。

4: 我有一个退出的命令链接。在我的操作中,我使用 session.invalidate() 并返回“登录”。所以我回到登录,但是在验证登录时,我的会话托管 bean 似乎没有被创建。错误类似于 yourSessionBean 为空。怎么了?

您可能以错误的方式访问会话范围的托管 bean。您需要将其注入为@ManagedProperty 或通过Application#evaluateExpressionGet() 获取。

【讨论】:

  • 1.如何使它们指向不同的值。我不知道我做了多少循环。 4. 我像h:commandButton action="#{mySessionBean.login}" 那样访问我的会话bean,他抛出一个错误。我认为当我注销时会话 bean 没有重新创建,可能是。
  • 对于 1,我已经更新了答案。对于 4,我需要知道确切的异常/错误消息。这听起来更像是yourSessionBean实际上是另一个 bean 的属性。
  • 我今天不能发布,明天我会发布确切的错误。你真的很有帮助,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-05
  • 1970-01-01
  • 2019-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-21
相关资源
最近更新 更多