subview标签的id属性

时间:2009-01-05 10:00:29

标签: java jsp jsf

我正在学习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赋予不同的值。

1 个答案:

答案 0 :(得分:1)

组件树使用id引用所有内容。使用jsf,你应该始终使用唯一的id引用所有内容,或者你可以让jsf执行它,但如果你在多个标记中明确指定相同的名称,你将遇到问题。