【问题标题】:ui:composition and statesaving in JSFui:JSF 中的组合和状态保存
【发布时间】:2013-08-14 10:59:28
【问题描述】:

我在 xhtml 页面 (main.xhtml) 中的 遇到了一些问题。 Main.xhtml 和 ui:composition 都使用单独的 viewscoped beans(mainbean、compositebean)来绑定属性。 ui:composition 页面内有一个

  1. 当我点击这个命令按钮时,compositebean 的 prerender 方法被调用,但是 action 方法没有被调用。但是当 mainbean 设置为 sessionscoped bean 时,它起作用了。为什么会有这种行为?

  2. 的 src 属性是从一个 viewscoped 托管 bean 属性动态绑定的:<ui:include src="#{mainbean.linkURL}" id="composite"/>。但是当我硬编码 ui:composition 的 src 属性时, 正确调用了操作方法:<ui:include src="composite.xhtml"/>.

  3. 如果未在 web.xml 中指定 javax.faces.STATE_SAVING_METHOD,那将是默认的状态保存机制?

【问题讨论】:

    标签: jsf-2 facelets


    【解决方案1】:

    1 和 2 的答案是 <ui:include> 是标签处理程序,而不是 UI 组件。这在JSTL in JSF2 Facelets... makes sense? 中有更详细的说明:简而言之:标签处理程序在视图构建期间运行,而 UI 组件在视图渲染期间运行。这进一步与<ui:composition>和朋友完全无关。

    3 在JSF specification 的第 11.1.3 章中得到解答。这是复制粘贴:

    • javax.faces.STATE_SAVING_METHOD -- 保存状态信息的位置。有效值为 “server”(一般保存在HttpSession中)和“client”(一般保存为后续表单中的隐藏字段) 提交)。如果未指定,则必须使用默认值“server”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      • 2014-05-14
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多