【发布时间】:2015-01-19 12:07:30
【问题描述】:
我需要你的帮助......请......
我正在从 JSF 1.2 迁移到 JSF 2.1。
我使用的实现是带有 facelets 的 Sun 的 Mojarra 实现,它在 JSF 1.2 中不是标准的一部分,但由于 JSF 2.0他们成为。
现在我使用 javax.faces.PARTIAL_STATE_SAVING 作为 true。 (尝试使用 false,但我的自定义组件都没有工作。)
我们有一些自定义的 JSF 组件,并且在大多数情况下它们都可以正常工作。但是,以下示例无法正常工作:
<ui:repeat value="#{myBean.list}" var="item">
<tr style="cursor:pointer;">
<td class="texttable col_med col15Personal">
<bf:TextBox
compId="aliasName"
value="#{item.aliasName}"
compStyle="font-size:1em;"
maxLength="15" showAutoLabel="false"/>
</td>
</tr>
</ui:repeat>
bf:TextBox 是一个自定义文本框,它扩展了 HtmlPanelGroup 并具有 2 个自定义子组件:
一个自定义标签(扩展HtmlOutputlabel)和一个自定义输入(扩展HtmlInputText)
当这个组件在没有 ui:repeat 的情况下使用时,一切正常。但是,当它进入其中时,就会出现问题。
在第一个渲染响应阶段,一切都很好。但是当你发帖时,在 restoreview 阶段,自定义 HtmlPanelGroup 的子项(标签和 inputText)不存在于 viewRoot 中,因此提交的值不存在。
相同的代码在 JSF 1.2 中可以正常工作。
我知道 ui:repeat 有其他选择(例如 c:forEach),但由于我正在处理迁移过程,因此更改所有内容非常复杂提到的涉及这种类型的代码。
提前谢谢大家,
【问题讨论】:
标签: jsf-2