如何從Java Bean獲取XPages上的DataSource句柄並調用其Save()方法?如何從Java Bean獲取數據源(document1)的句柄
默認變量(ID)是'document1'。
在ServerSide JavaScript中,其變量document1.save(); //非常簡單。
但是,在JSF中,我想我必須使用組件樹facesContext來獲取它的句柄。
想法?
如何從Java Bean獲取XPages上的DataSource句柄並調用其Save()方法?如何從Java Bean獲取數據源(document1)的句柄
默認變量(ID)是'document1'。
在ServerSide JavaScript中,其變量document1.save(); //非常簡單。
但是,在JSF中,我想我必須使用組件樹facesContext來獲取它的句柄。
想法?
document1
是a "NotesXspDocument" (in Domino's SSJS)的句柄,具體的Java類是com.ibm.xsp.model.domino.wrapped.DominoDocument
。無需通過參數傳遞引用句柄到方法就可以獲得處理這種定義的document1
的最簡單方法是解析變量。
您可以使用擴展庫的ExtLibUtil
方法resolveVariable(String name)
,在9.0.1_v15之前,這需要FacesContext
實例的第二個參數; resolveVariable(FacesContext ctx, String name)
。
或者,你可以跳過ExtLibUtil
完全,但我更喜歡它,經常使用它,有以下幾點:
DominoDocument myDoc = (DominoDocument) FacesContext.getCurrentInstance()
.getApplication().getVariableResolver()
.resolveVariable(FacesContext.getCurrentInstance(), "document1");
你可以從我們正在解決這個變量的事實看,通過用戶的FacesContext
實例,document1
必須實際存在/可供給定的FacesContext
實例訪問,以使其工作。 ExtLibUtil
方法均爲are wrappers to the FacesContext
variable resolver。
另請參閱此問題:http://stackoverflow.com/q/40635829/785061 –
,因爲我看到它來... http://stackoverflow.com/questions/9735648/save-method-on-datasource- do-not-fire-querysave-postsave-events :-) –