我正在学习jsf。当我使用以下代码时,我在java.lang.String中得到类转换异常:
<f:facet name="header">
<f:subview id="header">
<tiles:insert attribute="header" flush="false"/>
</f:subview>
</f:facet>
如果我用除标题之外的其他名称替换子视图id,则代码会成功运行。例如
<f:facet name="header">
<f:subview id="header1">
<tiles:insert attribute="header" flush="false"/>
</f:subview>
</f:facet>
我正在使用David Geary和Cay Horstmann的核心Java服务器面孔书。书中给出的示例对于构面名称和子视图ID具有相同的值。请解释为什么我们应该为facet name和subview id赋予不同的值。
答案 0 :(得分:1)
组件树使用id引用所有内容。使用jsf,你应该始终使用唯一的id引用所有内容,或者你可以让jsf执行它,但如果你在多个标记中明确指定相同的名称,你将遇到问题。