【发布时间】:2012-12-31 22:53:57
【问题描述】:
我想通过我提供的 id 从托管 bean 中找到一些 UIComponent。
我写了以下代码:
private UIComponent getUIComponent(String id) {
return FacesContext.getCurrentInstance().getViewRoot().findComponent(id) ;
}
我已将p:inputTextarea 定义为:
<p:inputTextarea id="activityDescription" value="#{adminController.activityDTO.activityDescription}" required="true" maxlength="120"
autoResize="true" counter="counter" counterTemplate="{0} characters remaining." cols="80" rows="2" />
现在如果以getUIComponent("activityDescription") 调用该方法,它将返回null,但如果我将其调用为getUIComponent("adminTabView:activityForm:activityDescription"),那么我可以获得org.primefaces.component.inputtextarea.InputTextarea 实例。
有什么方法可以获取只有 id 的组件,即“activityDescription”而不是绝对 id,即“adminTabView:activityForm:activityDescription”?
【问题讨论】:
-
我可以知道为什么-1吗?这不是一个有效的问题吗?
-
也许只是一些在
[java]标签中徘徊的天真用户不知道你在说什么。 -
我注意到您使用的是 primefaces。你检查过 ComponentUtils.java 吗? grepcode.com/file/repository.primefaces.org/org.primefaces/…
-
@Tapas Bose:一个绝妙的问题实际上清除了我对 UIComponent 类的可视化。从我这边+1。这类问题应该得到更多的东西。
标签: jsf uicomponents