我创建了一个GWT
窗口小部件,其根容器ID为“widgetContainer”,相应的编译文件为gwtwidget.nocache.js。我创建了这个小部件的war文件,并托管在本地服务器localhost:8888 / gwtwidget中。
我创建了另一个jsp应用程序,index.jsp如下:(将GWT
模块集成到JSP
应用程序中)
<html>
<head>
<script type="text/javascript" language="javascript" src="http://localhost:8888/gwtwidget/gwtwidget/gwtwidget.nocache.js?appId=461333815262909&appId=461333815262909&appId=461333815262909&appId=461333815262909"></script>
</head>
<body>
<div id="widgetContainer"></div>
</body>
</html>
我想检索从JSP
应用程序通过nocache.js文件传递的参数。为此,我正在使用代码
public static native String getParameter( String moduleName, String parameterName ) /*-{
var search = "/" + moduleName + ".nocache.js";
var scripts = $doc.getElementsByTagName( "script" );
for( var i = 0; i < scripts.length; ++i ) {
if( scripts[ i ].src != null && scripts[ i ].src.indexOf( search ) != -1 ) {
var parameters = scripts[ i ].src.match(/\w+=\w+/g);
for( var j = 0; j < parameters.length; ++j ) {
var keyvalue = parameters[ j ].split( "=" );
if( keyvalue.length == 2 && keyvalue[ 0 ] == parameterName ) {
return unescape( keyvalue[ 1 ] );
}
}
}
}
return null;
}-*/;
但无法将参数值输入GWT
窗口小部件。任何人都可以帮我解决这个问题吗?
提前致谢。
答案 0 :(得分:2)
如果您想使用查询字符串传递参数,则不是直截了当的。有办法解决这个问题。您可以参考以下帖子:
还有另一种方式,我觉得更简单。您可以在jsp文件中设置cookie。您可以在GWT模块中阅读cookie。
<html>
<head>
<script type="text/javascript">
document.cookie="appId=461333815262909"
</script>
<script type="text/javascript" language="javascript" src="http://localhost:8888/gwtwidget/gwtwidget/gwtwidget.nocache.js"></script>
</head>
<body>
<div id="widgetContainer"></div>
</body>
</html>
您可以在GWT模块中访问cookie“appId”:
String param = Cookies.getCookie("appId");