Struts2将url作为字符串传递

时间:2016-08-12 19:53:19

标签: javascript struts2

我正在使用javascript函数提交表单,在javascript函数中,我指定form.action= "Struts2 url goes here";

以下是我的代码片段:

var form = document.forms['myForm'];
if (form != null) {
    var backURL = "ActionB!someMethodB.action?Bparam1=somevalue&Bparam2=somevalue";
    form.action="ActionA!someMethodA.action?Aparam1=somevalue&Aparam2=" + backURL;
    form.submit();
}

问题在于,在操作方法someMethodA中,Aparam2的值始终被backURL中的第一个&符号截断。

我尝试用backURL这样的引号括起form.action="ActionA!someMethodA.action?Aparam1=somevalue&Aparam2='" + backURL + "'";,但它不起作用。有点让我觉得backURL的价值不是整体对待,而是解析。

我想知道是否有办法解决这个问题。

1 个答案:

答案 0 :(得分:1)

如果你想在url中使用包含特殊字符的参数,那么它们应该是urlencoded。

var backURL = encodeURIComponent("ActionB!someMethodB.action?Bparam1=somevalue&Bparam2=somevalue");

此外,可以使用s:url标记在服务器上构建URL的硬编码值。

var backURL = encodeURIComponent('<s:url action="ActionB" method="someMethodB"><s:param name="Bparam1" value="somevalue"/><s:param name="Bparam2" value="somevalue"/></s:url>'); 

在这种情况下,默认情况下&会转义为&amp;,但通常会在浏览器中使用转义值。