- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我这样做时:
<h:form>
<ui:repeat ...>
<ui:fragment rendered="#{xyz.type eq 1}"
<h:inputText value="#{xyz}"/>
</ui:frament>
<ui:fragment rendered="#{xyz.type eq 2}"
<my:component value="#{xyz}"/>
</ui:frament>
<ui:repeat />
</h:form>
encodeAll()
不会在 my:component
上被调用,随后不会显示现有值。
如果我执行以下操作
<ui:repeat ...>
<ui:fragment rendered="#{xyz.type eq 1}"
<h:inputText value="#{xyz}"/>
</ui:frament>
<ui:fragment rendered="#{xyz.type eq 2}"
<h:form>
<my:component value="#{xyz}"/>
</h:form>
</ui:frament>
<ui:repeat />
后一个例子当然没用,因为我想要动态输入。现有(默认)组件作为 datepicker、inputtext、... 功能正常,只有我的组件不显示现有值(未调用 encodeAll)。
我还尝试了 h:datatable 组件而不是 ui:repeat(不知道为什么),结果相同。
INFO: Initializing Mojarra 2.1.6 (SNAPSHOT 20111206) for context '/webclient'
INFO: Running on PrimeFaces 3.5
INFO: Running on PrimeFaces Extensions 0.6.3
最佳答案
我无法根据给定的代码重现您的问题,但是当我将它包装在 PrimeFaces 组件中时我可以重现它。例如。什么时候<ui:fragment>
被 <p:panel>
取代(没有 rendered
!)。这是由 PrimeFaces CoreRenderer
引起的不打电话 UIComponent#encodeAll()
在 renderChildren()
方法,但是 encodeBegin()
, encodeChildren()
和 encodeEnd()
个别地。
如果您在 encodeBegin()
中执行工作而不是 encodeAll()
,那么它应该工作。我相应地更新了我的复合组件文章。
关于java - 包装渲染属性时未在复合组件上调用 encodeAll(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15613725/
当我这样做时: encodeAll() 不会在 my:component 上被调用,随后不会显示现有值。
考虑自定义 UIComponent(仅用于测试目的): public class UITest extends UIComponentBase { @Override public v
我已经测试了 Balusc 的 inputDate 组件:Composite component with multiple input fields 在 PrimeFaces 对话框中。 encod
我是一名优秀的程序员,十分优秀!