作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑自定义 UIComponent(仅用于测试目的):
public class UITest extends UIComponentBase {
@Override
public void encodeBegin(FacesContext context) throws IOException {
System.out.println("encodeBegin");
}
@Override
public void encodeAll(FacesContext context) throws IOException {
System.out.println("encodeAll");
}
}
encodeBegin()
方法被调用。但是,当将其添加到复合组件外的页面时,
encodeAll()
方法被调用。
最佳答案
在这种情况下,规范非常困惑,指出:
“这些方法在请求处理生命周期的渲染响应阶段被调用。encodeAll() 将
导致该组件及其所有从 isRendered() 返回 true 的子组件和构面被渲染,无论
getRendersChildren() 返回值的值。 encodeBegin()、encodeChildren() 和
encodeEnd() 负责为这个组件的开头创建响应数据,这个
组件的子组件(仅在该组件的 rendersChildren 属性为 true 时调用),以及
这个组件,分别。”
但是,这似乎是新旧功能的混合体,其中新功能 (encodeAll) 在某些方面似乎不完整:
我尝试了以下方法:
A) 直接在页面中调用组件(无包装)
关于JSF 2.0 : When is encodeAll called and when is encodeBegin called?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4284060/
我是一名优秀的程序员,十分优秀!