Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Grails获取原始控制器的url_Java_Spring_Grails - Fatal编程技术网

Java Grails获取原始控制器的url

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

我有一个URL,比如abc.com/somecontroller?someparam=1,它呈现一个表单。提交时的表单将表单参数发送到
/ajaxAction

有没有办法得到这个
abc.com/somecontroller?someparam=1
(即表单URL?)

我更感兴趣的是从表单的URL获取
someparam

PS:上面的URL
abc.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的使用?