我从window.showModalDialog调用另一个应用程序上下文,但与以下工作混淆。在showModalDialg中传递参数的代码相同。
var myArguments = new Object();
myArguments.param1 = "Hello World :)";
window.showModalDialog("java2sTarget.html", myArguments, '');
我可以使用以下代码在生成的HTML中读取这些myArguments(参数):
<script>
document.write(window.dialogArguments.param1);//Hello World :)
</script>
我无法使用查询字符串&amp;我发送myArguments(参数),因为我想隐藏Application用户的参数。
现在我从showModalDialog(..)
调用servletonclick="window.showModelDialog('http://localhost:7778/app/servlet/test',myArguments,'');"
的onclick = “window.showModelDialog(的 'http://本地主机:7778 /应用/小服务程序/测试',myArguments, '');”
但据我所知
Servlet --> Servlet container --> HTML+JS+CSS
因此JS将在最后阶段提供,但我想在第一阶段(Servlet)中使用。
现在,我需要根据myArguments(参数)在servelt代码中做出一些决定。
有没有办法在servlet代码中读取这些myArguments(参数)?
答案 0 :(得分:0)
将其作为查询字符串中的请求参数传递。
var queryString = "param1=" + encodeURIComponent("Hello World :)");
onclick="window.showModelDialog('http://localhost:7778/app/servlet/test?' + queryString, myArguments, '');"
不,没有其他选择。无论如何,请求URL在模式对话框中不可见。
答案 1 :(得分:0)
主要目标是隐藏用户的查询字符串,以避免滥用这些参数。 我尝试了下面的工作。
开发人员发送隐藏参数以获取源代码的相关信息(例如:DataBase)。我们还知道,我们可以使用Window.showModalDialog
dialogArguments
中发送隐藏信息
解决方法:
(i)在使用Window.showModalDialog
jQuery.getJSON()
之前,我从服务器获取了一步的相关信息
(ii)我在servlet端使用google-gson API将JavaBeans转换为Json字符串。Solution 1 Solution 2
(iii)使用jQuery.parseJSON
var args = jQuery.parseJSON(json);
window.showModalDialog("pages/"+args.pageName, args, '');
我使用args.pageName
来制作动态
请在此变通办法中提出改进建议。感谢