2012-06-26 98 views
2

是否可以從自定義組件中調用另一個JSF組件(與複合組件不同)?從自定義組件中調用另一個JSF組件

特別,我希望從另一個組件的encodeEnd方法中調用PrimeFaces消息組件

我(天真)希望這樣的事情:

@Override 
public void encodeEnd(FacesContext context, UIComponent component) 
     throws java.io.IOException { 

    // Do stuff... 

    // set up Message object 
    // tell Message object the current component's id 
    // render Message object 
} 

回答

3

這應該這樣做:

import org.primefaces.component.message.Message; 

// ... 

Message message = new Message(); 
message.setParent(component); 
message.setFor(component.getId()); 
message.encodeAll(context); 
+0

啊,我很接近。我錯過了message.setFor步驟,然後確信我完全是在做錯誤的事情。但是,問題仍然存在。 現在我收到了錯誤信息,我也收到了組件本身之前產生的錯誤信息,複製的次數已經被提交了! – solidgoldpig

+0

是的,那是我原來的答案。你檢查了我14分鐘前做的更新嗎?請注意,這通常不是完全適合添加孩子的地方(因此我原來的方法意外失敗)。您希望在'postAddToView'事件期間做這項工作。 – BalusC

+0

剛剛嘗試過。 不幸的是我在message.setParent(組件)線得到一個錯誤 '警告:StandardWrapperValve [面臨的Servlet]:PWC1406:Servlet.service()進行的servlet面臨的Servlet拋出異常 顯示java.lang.NullPointerException \t在com.sun.faces.application.view.StateManagementStrategyImpl $ 4.visit(StateManagementStrategyImpl.java:331)' postAddToView? Uhoh,越來越深入我的深度... – solidgoldpig

相關問題