- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有表单的 jsf 页面,其中有一个输出文本。 outputtext 组件的值是从支持 bean(或托管 bean)调用的。我知道当我将其编码为 #{MyBean.myString}
Jsf 重命名它并调用 getMyString() 方法。然而奇怪的是,当我在这个组件的 getter 方法中放置一个断点时,我看到它在页面被渲染期间被调用了两次。
输出文本采用 h:form,它是唯一绑定(bind)到 backingbean 的组件。我的意思是,jsf 应该在第一次访问 getter 方法时获取值,但它需要两次访问 getter 方法,这太奇怪了。
你能解释一下jsf中这种行为的原因是什么吗?
任何帮助,将不胜感激,
最良好的祝愿,
巴里斯
最佳答案
getter,正如它的名字已经自我描述的那样,只是为了检索数据而存在的。 JSF 不缓存这些数据。它会在需要时调用它。调用 getter 的成本实际上是零——除非你做的不仅仅是返回数据,例如每次都访问数据库,然后应该将这个逻辑移出 getter 或变成延迟加载。
在表单提交的情况下,通常会在验证阶段触发第一个 get 调用,以检查是否有任何初始值,以便 JSF 可以处理值更改事件。第二个调用通常在渲染响应阶段触发,以在 View 中显示模型值。
您可以找到 this article对于了解有关 JSF 生命周期的更多信息也很有用。您可以找到 this answer有助于了解有关在支持 bean 中进行预处理/初始化的方法的更多信息。
关于jsf - 一个jsf页面和一个托管bean之间,为什么getter方法被调用了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2786834/
如果您有一个具有一些普通 get/set 属性的类,是否有任何理由在类方法中使用 getter,或者您应该只使用私有(private)成员变量?我认为关于setter(验证逻辑?)可能会有更多争论,但
我是 Android 编程的新手(~ 2 个月)有必要为几十个不同的变量设置 getter 吗? 例如—— //Yes I realise that this isn't 'dozens' publi
我是VUEX新手,在学习VUEX的同时搭建了一个测试应用。我已将我的 VUEX 存储拆分为多个模块,每个模块都有自己的 getter.js 文件。 Getters、 Action 、突变被导入到每个模
我有一项服务正在加载我想在多个组件之间共享的基本系统信息。 如果我在 getter 中创建一个 getter 方法 this 如果我不在服务中使用双箭头,则 getter 中的 this 成为组件的
tl;博士 如何从参数化的 getter 访问其他 getter? 通常可以使用this.myGetter ;但是参数化的 getter 被实现为箭头函数,其中 this未定义。 在 Pinia 中处
我第一次尝试做一些 OOP,这不是简单的练习,而是用 java 编写一个程序来存储有关人员的信息(如通讯录)。下面是我正在开发的名为 Person 的类的片段。 Person 将在将来的某个时间被其他
我在某处看到类似下面的内容,想知道它是什么意思。我知道他们是getter和setter,但是想知道为什么字符串Type是这样定义的。谢谢你帮助我。 public string Type { get;
Public class Example { private int number; public Example(int number){ this.number =
getter 应该只返回对象吗: public MyObject getMyObject() { return myObject; } 或者它应该复制它返回的对象并返回该副本? public
我目前正在处理大量数据输入,包括很多值,我希望在 getter 中接收这些值以供以后使用。 在编写了一些方法之后,我想知道仅使用一个 get 方法是否是一个更好的主意,并使用一个包含所有可能值的枚举类
我正在使用新的 Class Public Field Declarations可用 Chrome 72我遇到了这种真正奇怪的行为: class Extended { property = 5; }
我有一个这样的表达式 setter/getter : var expression = () => SomeInstance.Nr; 它被传递到一个方法中: public void AddExpres
我的一个类(class)中有以下 getter: get password(){ if(this._public) return null; var text = ""
我已经设法测试了与其他代码隔离的 Vuex getter。当 getter 依赖于其他 getter 时,我现在面临一些问题,请参见以下示例: getters.js export const gett
有时我的任务是查找 getter 返回的值中的某些嵌套 getter 是否具有某些属性。经典的 C++ 会是这样的: for (const auto& label: labels) for (co
我有一个像这样的基类“Parent”: using System; using System.Collections.Generic; using System.Text; namespace Con
我一直在努力了解 getter 和 setter,但没有深入了解。我读过 JavaScript Getters and Setters和 Defining Getters and Setters只是没
考虑一个简单的 Vue 博客: 我使用 Vuex 作为我的数据存储,我需要设置两个 getters :一个 getPost getter,用于通过 ID 检索 post,以及一个 listFeatur
我有一个 VueX 商店,有两个模块,user.js 和merchant.js,顶层是index.js。 user.js 中的 getter 是: 重构 const getters = { s
我正在尝试向 jsp 添加一个复选框以在进入站点之前接受条款和条件。尽管我有一个 getter 方法并且没有看到任何拼写错误,但我一直收到关于没有 getter 方法的相同错误。我不明白我错过了什么。
我是一名优秀的程序员,十分优秀!