我有一個Bean
,具有@ManagedBean註解,這樣定義:JSF 2:是否有可能繼承@ManagedBean?
@ManagedBean
@SessionScoped
public class Bean implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
}
現在,我已經另外一個bean定義是這樣的:
public class FooBean extends Bean {
// properties, methods here ...
}
當我嘗試引用FooBean在我JSF頁面,我有以下錯誤:
Target Unreachable, identifier 'fooBean' resolved to null
爲什麼JSF不會e FooBean
作爲託管bean?
通過這樣做,我將不得不把@ManagedBean放在我所有的bean上...這就是我想要避免的! – Stephan
@Stephan:你爲什麼要避免在所有託管bean上註釋?我不知道你在'BaseBean'裏面放了什麼,但是從你命名它的方式來看,它應該在所有託管bean之間設置通用性,所以你不應該註釋它@ManagedBean,因爲它不是真正的控制器/網關你的'模型'。你的'BaseBean'是'SessionScoped',所以無論你是否需要,每一個從'BaseBean'繼承的bean都將被SessionScoped所接受。你不想在Session中保留太多東西。如果您想創建一個具有RequestScoped並繼承'BaseBean'的託管bean,該怎麼辦? –
要更清楚:是否有可能繼承@ManagedBean? – Stephan