Java Grails获取原始控制器的url
我有一个URL,比如abc.com/somecontroller?someparam=1,它呈现一个表单。提交时的表单将表单参数发送到Java Grails获取原始控制器的url,java,spring,grails,Java,Spring,Grails,我有一个URL,比如abc.com/somecontroller?someparam=1,它呈现一个表单。提交时的表单将表单参数发送到/ajaxAction 有没有办法得到这个abc.com/somecontroller?someparam=1(即表单URL?) 我更感兴趣的是从表单的URL获取someparam值 PS:上面的URLabc.com/somecontroller?someparam=1是动态生成的,因此我无法访问它。 和request.forwardURI将为我提供/ajaxAc
/ajaxAction
有没有办法得到这个abc.com/somecontroller?someparam=1
(即表单URL?)
我更感兴趣的是从表单的URL获取someparam
值
PS:上面的URLabc.com/somecontroller?someparam=1
是动态生成的,因此我无法访问它。
和request.forwardURI
将为我提供/ajaxAction
(即表单中操作的URL,而不是表单本身的URL)
编辑:
我无法控制表单,因为它也是动态的,用户有数百个模板可供选择。每个模板都有不同数量的字段。
因此,如果我更喜欢其他方式来获取URL。为什么不在表单中使用javascript并使用get参数添加到ajax请求数组中?(或使用生成表单的操作的url)
您可以通过脚本从原始请求f.e.获取它们。在呈现表单的GSP时,您可以执行以下操作:
$.ajax({
url: '/ajaxAction' + location.search
/* rest of the AJAX code */
});
myaction.gsp
<html>
<body>
<!-- Your content -->
<script>
var paramsString = '${params.collect { k, v-> "$k=$v" }.join("&") }';
</script>
</body>
</html>
现在,在AJAX代码中,您可以将该字符串作为查询参数传递:
$.ajax({
url: '/ajaxAction?' + paramsString
/* rest of the AJAX code */
});
现在,在ajax控制器操作中,只需执行params.someparam
编辑
嗯,我刚刚意识到你不需要我上面提到的任何普惠制的东西。只需执行如下AJAX调用:
$.ajax({
url: '/ajaxAction' + location.search
/* rest of the AJAX code */
});
location.search
将为您提供直接字符串:?someparam=1&foo=2
我最终使用flash来存储someparam
在用于在abc.com/somecontroller?someparam=1上呈现表单的控制器中,我使用flash,如下所示:
flash.put("someparam", params.someparam)
这是解决这个问题的一个快速方法。我觉得这在我无法控制普惠制的情况下会很好
如果有人发现任何问题,请发表评论,否则我会将此标记为答案。window.location.href
和document.URL
在javascript中会对您有所帮助。谢谢您的回答,但我已经知道了。Pls chk editI无法控制GSP的呈现,因此无法使用基于javascript的解决方案。好的,那么您也无法控制javascript的使用?