【发布时间】:2015-09-07 11:03:31
【问题描述】:
我想使用 jQuery 从 servlet 调用 JavaScript 函数。
这是我的 JavaScript:
function showerrodailog(){
ShowDialogBox('Alert','No record found.','Ok','', 'GoToAssetList',null);
}
function ShowDialogBox(title, content, btn1text, btn2text, functionText, parameterList) {
var btn1css;
var btn2css;
if (btn1text == '') {
btn1css = "hidecss";
} else {
btn1css = "showcss";
}
if (btn2text == '') {
btn2css = "hidecss";
} else {
btn2css = "showcss";
}
$("#lblMessage").html(content);
$("#dialog").dialog({
resizable: false,
title: title,
modal: true,
width: '400px',
height: 'auto',
bgiframe: false,
hide: { effect: 'scale', duration: 400 },
buttons: [
{
text: btn1text,
"class": btn1css,
click: function () {
$("#dialog").dialog('close');
}
},
{
text: btn2text,
"class": btn2css,
click: function () {
$("#dialog").dialog('close');
}
}
]
});
}
我想从一个 servlet 调用这个函数。我怎么能这样做,我从谷歌尝试并找到了这段代码,但是,我打电话说它说错误 $ 未定义。
我将它用于弹出警报消息。
/* ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine javascriptEngine = manager.getEngineByExtension("js");
// Get script from JS File
FileInputStream fileInputStream = new FileInputStream("F:\\workspace\\Userlogin\\WebContent\\js\\val.js");
if (fileInputStream != null) {
BufferedReader reader = new BufferedReader(new InputStreamReader(fileInputStream));
javascriptEngine.eval(reader);
Invocable invocableEngine = (Invocable)javascriptEngine;
// Invoke javascript function named "sayHello" with parameter "Atul"
Object object = invocableEngine.invokeFunction("sayHello", "Atul");
System.out.println("Result: " + object);*/
// }
【问题讨论】:
-
你希望你的 JavaScript 在哪里运行? Servlet 执行服务器端,而 JavaScript(通常)在您的浏览器中执行。您可以根据某些事件触发您的 JavaScript 加载到您的页面中,例如页面加载/文档准备好了吗?由于您使用的是 jQuery,请查看:learn.jquery.com/using-jquery-core/document-ready
-
你有一个奇怪的要求。为什么需要 servlet 执行和更新视图?
标签: java javascript jquery servlets