Примеры использования JS в Oracle Applications Framework. Вызов JAVA-методов из кода JavaScript
Для того, чтобы пользовательская JavaScript-функция вызывалась при нажатии на кнопку, достаточно единоразово выполнить код привязки:
Для того, чтобы пользовательская JavaScript-функция вызывалась при нажатии на кнопку, достаточно единоразово выполнить код привязки:
public void processRequest(OAPageContext pageContext, OAWebBean webBean) { super.processRequest(pageContext, webBean); clearButtonSetOnClick(pageContext, webBean); } private void clearButtonSetOnClick(OAPageContext pageContext, OAWebBean webBean) { OAApplicationModule am = pageContext.getApplicationModule(webBean); StringBuffer clearFunc = new StringBuffer(); clearFunc.append("function clearFunction()"); clearFunc.append("{"); // для элементов типа input clearFunc.append("document.getElementById('Field1').value='';"); // для элементов form value clearFunc.append("document.getElementById('fvField1').value='';"); // для элементов checkbox clearFunc.append("document.getElementById('MyChkBox').checked=false;"); clearFunc.append("}"); pageContext.putJavaScriptFunction("clearFunction", clearFunc.toString()); OAButtonBean clearButton = (OAButtonBean) webBean.findChildRecursive("ClearBtn"); String javaSClear = "javascript:clearFunction();"; clearButton.setOnClick(javaSClear); }Так же можно привязать выполнение кода к другим событиям, например onLoad. Удобно, когда нужно выполнить сценарий после загрузки страницы:
OABodyBean bodyBean = (OABodyBean) pageContext.getRootWebBean(); bodyBean.setOnLoad("javascript:clearFunction();");Из JavaScript-сценария можно вызвать код на JAVA, хотя и не совсем явным способом. Для этого добавляем в JS-скрипт строку, инициирующую событие "clear" на странице
clearFunc.append("function clearFunction()"); clearFunc.append("{"); ... clearFunc.append("submitForm('DefaultFormName',1,{'evtSrcRowIdx':'','evtSrcRowId':'',event:'clear',source:'test'});return false;"); clearFunc.append("}");Обрабатываем созданное событие в методе processFormRequest
public void processFormRequest(OAPageContext pageContext, OAWebBean webBean) { super.processFormRequest(pageContext, webBean); if ("clear".equals(pageContext.getParameter(EVENT_PARAM))){ myProc(); } }
Комментариев нет :
Отправить комментарий