Struts2 将 url 作为字符串传递
Struts2 pass url as a string
我正在使用 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
的值没有被视为一个整体,而是被解析了。
我想知道是否有办法解决这个问题。
如果您想在 url 中使用包含特殊字符的参数,则应对其进行 url 编码。
var backURL = encodeURIComponent("ActionB!someMethodB.action?Bparam1=somevalue&Bparam2=somevalue");
此外,URL 的硬编码值可以在带有 s:url
标签的服务器上构建。
var backURL = encodeURIComponent('<s:url action="ActionB" method="someMethodB"><s:param name="Bparam1" value="somevalue"/><s:param name="Bparam2" value="somevalue"/></s:url>');
在这种情况下,默认情况下 &
转义为 &
,但浏览器通常使用转义值。
我正在使用 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
的值没有被视为一个整体,而是被解析了。
我想知道是否有办法解决这个问题。
如果您想在 url 中使用包含特殊字符的参数,则应对其进行 url 编码。
var backURL = encodeURIComponent("ActionB!someMethodB.action?Bparam1=somevalue&Bparam2=somevalue");
此外,URL 的硬编码值可以在带有 s:url
标签的服务器上构建。
var backURL = encodeURIComponent('<s:url action="ActionB" method="someMethodB"><s:param name="Bparam1" value="somevalue"/><s:param name="Bparam2" value="somevalue"/></s:url>');
在这种情况下,默认情况下 &
转义为 &
,但浏览器通常使用转义值。