我實現了一個簡單的方法,即迭代JSF組件樹並將組件設置爲禁用。 (所以用戶不能更改這些值)。但是這種方法不適用於複合組件。我如何至少檢測一個複合組件?然後我可以嘗試將特殊屬性設置爲禁用。如何在JSF組件樹中查找組合樹?
1
A
回答
2
UIComponent
類有一個isCompositeComponent()
輔助方法正是爲了這個目的。
所以,這應該只是做:
for (UIComponent child : component.getChildren()) {
if (UIComponent.isCompositeComponent(child)) {
// It's a composite child!
}
}
對於有意運作 「在幕後」,這裏是從鑽嘴魚科2.1.25執行源代碼:
public static boolean isCompositeComponent(UIComponent component) {
if (component == null) {
throw new NullPointerException();
}
boolean result = false;
if (null != component.isCompositeComponent) {
result = component.isCompositeComponent.booleanValue();
} else {
result = component.isCompositeComponent =
(component.getAttributes().containsKey(
Resource.COMPONENT_RESOURCE_KEY));
}
return result;
}
因此通過存在具有Resource.COMPONENT_RESOURCE_KEY
定義的名稱的組件屬性來識別,其值爲"javax.faces.application.Resource.ComponentResource"
。
相關問題
- 1. JSF中的樹組件
- 2. JSF和組件樹狀態
- 3. 在Android Studio中查找組件樹2.3.3
- 4. 在PhaseListener中修改JSF組件樹
- 5. 查找一組(樹)樹中最頻繁的子樹
- 6. 如何在Python中構建組合樹?
- 7. 在JSF樹中查找嵌套在a4j:repeat標記中的第n個組件
- 8. 在R中組裝一棵組合樹
- 9. SQL查詢在樹中查找樹葉
- 10. 上樹組件
- 11. 在CakePHP樹中查找子樹
- 12. adf - 如何修改樹中的組件?
- 13. 樹形視圖組合框
- 14. 所有組合樹算法
- 15. 樹組合和分區
- 16. Octobercms組件樹枝
- 17. Angular 2組件樹
- 18. 決策樹組件
- 19. Flex 4.5樹組件
- 20. 打印樹組件
- 21. 如何在名稱樹中查找blob
- 22. 在java中的布爾表達式樹中查找所有可能的組合
- 23. 在渲染時使用Jsf組件樹或ManagedBeans?
- 24. 查找樹中的常見子樹
- 25. 在可視樹中查找控件
- 26. 查找AVL樹
- 27. 查找DOM樹
- 28. 查找樹
- 29. 如何在html組合框中使用樹狀結構
- 30. 從xhtml文件創建jsf視圖/組件樹
由於對複合組件支持bean類型的唯一限制是實現'NamingContainer',所以您無法檢測到某件事是否爲複合件,但還有很多其他的東西正在實現該接口。 – rdcrng
請問每個問題一個問題。不要改變現有的問題。它使答案不完整甚至無效。 – BalusC
@BalusC對不起,這是我的第一個問題,關於安全性的想法在我想到這個時候會出現。你可以重新創建你的答案嗎?你的回答非常有用。 – Tony