2009-01-05 90 views
2

我正在学习jsf。我得到的类转换异常在java.lang.String中,当我使用下面的代码:subview标签的id属性

<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具有相同的值。请解释为什么我们应该为方面名称和子视图ID提供不同的值。

+0

这里应该没有冲突。可能是一个执行错误。哪个JSF库提供者(例如Apache; Sun)?什么版本?什么控制的方面?堆栈跟踪可能会有所帮助。 – McDowell 2009-01-05 15:39:25

+0

看看http://www.javapassion.com/handsonlabs/jsftiles/,特别是“练习3”,看看你是否错过了一些东西。另外检查一下你没有拼错任何东西。 – martinatime 2009-01-05 18:44:27

回答

1

组件树使用ID来引用一切。有了jsf,你应该总是引用一个唯一的id,或者你可以让jsf做到这一点,但如果你明确地指定多个标签中的同名,你将会遇到问题。