我正在尋找一種方法來添加某種參數傳播使用CDI事件機制的事件。如何在CDI事件中使用參數?
我知道我的例子,我可以創建不同的事件,但我正在尋找一種方式來重用相同的事件,但有一個不同的參數。然後使用此事件參數註釋一些方法,以便在觸發事件時僅調用此方法。
下面的例子不工作,但足以說明我的意圖。這是否有可能?
//custom event class
public class NotifyChange {
}
//change the model and notify the view
public class MyPresenter {
@Inject
private Events<NotifyChange> events;
public void updateUser() {
//change some user settings
events.fire(new NotifyChange("user")); //that what I'm somehow looking for
}
public void updateCustomer() {
//change some customer settings
events.fire(new NotifyChange("customer"));
}
}
//change the view according to events
public class MyView {
void listenUserChange(@Observes NotifyChange("user") evt) {
//update UI
}
void listenCustomerChange(@Observes NotifyChange("customer") evt) {
//update UI
}
}
我相信這可以出線的事件來完成。請參閱[規格](http://download.oracle.com/otndocs/jcp/web_beans-1.0-fr-eval-oth-JSpec/),第10章「事件」並閱讀有關限定符。 –
在te jee6教程中閱讀teppayment示例:http://docs.oracle.com/javaee/6/tutorial/doc/gkhpa.html它在PaymentEvent事件中定義了paymentOption屬性。 – DwB
@DwB這不是我正在尋找的。文檔建議爲每個事件創建不同的註釋以區分它們。我正在尋找一種方法來避免這一點。 – membersound