gpt4 book ai didi

java - JSF页面的编码和解码

转载 作者:行者123 更新时间:2023-11-29 06:05:13 25 4
gpt4 key购买 nike

我正在阅读 Core JavaServer Faces 3rd edition我有一个关于 JSF 页面编码和解码的问题。

当页面即将呈现时,它将首先遍历包含 JSF 标记的 XHTML 页面。每个 JSF 标记都有一个自己的标记处理程序类,并且它们合作创建该页面的组件树。所有其他标签都将被忽略。

每个组件都有自己的渲染器,它知道如何生成 HTML。现在书上说:

(这是一个 h:inputText 标签)

Each component has a renderer that produces HTML output, reflecting the component state. The renderer of the UIInput object asks the JSF implementation to look up the unique ID and the current value fo the expression user.name.

问题是:

为什么书上说实现要求表达式user.name的当前值?我希望实现改为询问组件——在本例中是 UIInput——它有一些对此用户 bean 的引用?因为,那个类不是在代码中“反射(reflect)”了 JSF 标签吗?

我可能误解了这个概念,我想学习一下。

最佳答案

获取 EditableValueHolder 的输出值与 UIInput 一样,Renderer 通常会调用 getValue()。这通常会返回:

  1. 如果输入验证或转换失败,则来自 getSubmittedValue() 的值
  2. 通过调用 setValue(Object) 明确设置的对象(如果有的话)
  3. 的结果ValueExpression如果有的话

组件定义行为。理想情况下,它应该与渲染器、标记和数据源松耦合。该组件不关心它的数据源是什么——它不必是一个托管 bean。获取和设置值是 ValueExpression 的职责。

ValueExpression 的计算结果取决于 context .

关于java - JSF页面的编码和解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8769552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com