Примеры использования 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();
}
}
Комментариев нет :
Отправить комментарий