在我的应用程序的任何地方点击热kyes ctrl + t时,它应该将网址重定向到http://localhost:8080/myapp/account/create 我是通过将.js文件放在js文件夹中并在每个页面中包含该文件来实现的。 .js文件的内容是
jQuery(document).bind('keypress', 'Ctrl+T',function (evt){
window.location.href =("http://localhost:8080/myapp/account/create");
return false
});
其中myapp是Controller,create是Action。所以我不想硬编码整个url insted,无论url,只有控制器和动作应该被替换。所以在生产环境中我不需要改变网址。这是grails应用程序
答案 0 :(得分:0)
据我了解,问题是将当前上下文路径传递给javascript,是吗?
您可以在视图中记住当前的上下文名称(例如,在基本布局中),将其放入<head>
块中:
<script type="text/javascript">
window.pageContext = '${request.contextPath}';
</script>
然后从其他javascript中使用它:
jQuery(document).bind('keypress', 'Ctrl+T',function (evt){
window.location.href = window.pageContext + "/account/create";
return false
});
或者,如果您需要生成控制器+操作的完整路径,则必须使用:
<g:createLink controller="account" action="create" />
有关详细信息,请参阅http://grails.org/doc/latest/ref/Tags/createLink.html