【问题标题】:viewParam and the request scoped beanviewParam 和请求范围的 bean
【发布时间】:2012-03-25 03:21:32
【问题描述】:

我尝试将视图参数与请求范围的 bean 结合使用。我注意到模型确实得到了更新,并且在呈现页面时,设置了 bean 属性并使用<h:outputText value="myBean.myParameter /> 呈现。我的问题是,关于回帖。我的印象是,只要您不发布到 不同的 视图,视图参数值就会被保留。我希望在操作方法调用期间自动在 bean 中设置该属性,但实际上我发现情况并非如此。有人可以解释为什么会这样。我四处搜索,发现许多讨论 viewParams 的文章,但我找不到每个范围内效果(以及原因)的确切解释。如果有人知道已经有一篇文章记录了这一点,你能指点我吗。在此先感谢...

【问题讨论】:

    标签: jsf-2


    【解决方案1】:

    我的印象是,只要您不发布到其他视图,视图参数值就会保留。

    仅当您使用 view 范围的 bean 时才适用,因为它们会在 bean 中被记住。只要您与同一个视图交互,视图作用域 bean 就会存在。根据您的印象,我认为您将请求范围与视图范围混淆了。

    请求范围的 bean 在 HTTP 请求/响应周期结束时被丢弃。因此,当网络浏览器完成页面加载时,请求范围内的支持 bean 已经被丢弃了很长时间。当您在该页面上提交表单时,将创建一个新的请求范围 bean,<f:viewParam> 将检查要设置的请求参数是否可用,如果不可用,则跳过它(或验证;如果有required="true" 设置在他们身上)。只要您不通过在该页面上表单的命令链接/按钮内使用<f:param> 来保留视图参数,那么这些参数将在后续请求中丢失,因此也会在任何涉及的请求范围 bean 中丢失。

    另见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-21
      • 2011-11-11
      • 1970-01-01
      • 2012-05-26
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多