我有一个表示abc.com/somecontroller?someparam=1
的网址,用于呈现表单。提交表单将表单参数发送到/ajaxAction
我有没有办法得到这个abc.com/somecontroller?someparam=1
(即表格网址?)
我更感兴趣的是从表单的网址中获取someparam
值。
PS:以上网址abc.com/somecontroller?someparam=1
是动态生成的,所以我无法访问它。
request.forwardURI
会给我/ajaxAction
(即表单中的操作的网址,而不是表单的网址)。
编辑: 我无法控制表单,因为它也是动态的,用户有数百个模板可供选择。每个模板都有不同的编号。的领域。 所以如果我更喜欢其他方式来获取URL。
答案 0 :(得分:1)
为什么不在表单中使用javascript并使用GET参数添加到ajax请求数组? (或使用生成形式的动作的URL)
您可以从原始请求获取它们。通过this脚本。
答案 1 :(得分:0)
在渲染表单的GSP时,您可以这样做:
<强> myaction.gsp 强>
<?php
$_category_detail=Mage::registry('current_category');
echo $_category_detail->getName(); //gives current category name
echo $_category_detail->getId(); //gives current category id
?>
因此,当您呈现GSP时,<html>
<body>
<!-- Your content -->
<script>
var paramsString = '${params.collect { k, v-> "$k=$v" }.join("&") }';
</script>
</body>
</html>
标记将具有类似内容(对于网址script
:
abc.com/somecontroller?someparam=1&foo=2
现在,在您的AJAX代码中,您可以将该字符串作为查询参数传递:
var paramsString = 'someparam=1&foo=2';
现在,在您的ajax控制器操作中,您只需执行$.ajax({
url: '/ajaxAction?' + paramsString
/* rest of the AJAX code */
});
。
修改强>
好吧,我刚才意识到你没有我上面提到的任何GSP内容。只需像这样执行AJAX调用:
params.someparam
$.ajax({
url: '/ajaxAction' + location.search
/* rest of the AJAX code */
});
将为您提供直接字符串:location.search
答案 2 :(得分:0)
我最终使用flash来存储someparam
在我用于在abc.com/somecontroller?someparam=1
呈现表单的控制器中,我使用flash作为:
flash.put("someparam", params.someparam)
这是该问题的快速解决方法。我觉得这在我无法控制gsp的情况下会很好用。
如果有人发现任何问题,请另外发表评论,我会将此标记为答案。